Sauté the aromatics: Warm the olive oil in a large pot over medium heat.
Add onion, carrot, and celery with a pinch of salt. Cook, stirring, until softened and lightly golden, about 6–8 minutes.
Build the base: Stir in the garlic, tomato paste, oregano, thyme, and bay leaf. Cook 1–2 minutes until fragrant and the paste darkens slightly.
Add tomatoes and broth: Pour in the diced tomatoes with their juices and the broth.
Stir well, scraping up any browned bits from the bottom of the pot.
Simmer sturdy veggies: Add the diced potato. Bring to a boil, then reduce to a gentle simmer. Cook 10 minutes.
Add medium-tender vegetables: Stir in the green beans and zucchini.
Simmer another 6–8 minutes, until the potato is just tender.
Add beans and pasta: Stir in the cannellini beans and pasta. Simmer until the pasta is al dente, usually 7–10 minutes depending on shape. Stir occasionally so the pasta doesn’t stick.
Add greens and adjust: Stir in the kale or spinach.
Cook 2–3 minutes until wilted. Remove the bay leaf. Taste and season with salt and pepper.
Finish with red wine vinegar or lemon juice to brighten.
Serve: Ladle into bowls. Top with Parmesan and herbs if you like. Serve with crusty bread for a complete meal.