Brown the beef: Heat 1 tablespoon olive oil in a large pot over medium-high heat. Pat the beef dry, season with salt and pepper, and brown in batches until well seared.
Transfer to a plate. Don’t overcrowd the pot—good browning builds flavor.
Sauté the aromatics: Lower heat to medium. Add remaining 1 tablespoon olive oil, then onion, carrots, and celery.
Cook 5–7 minutes until softened and lightly golden. Stir in garlic and cook 30 seconds until fragrant.
Build the base: Add tomato paste and cook 1 minute, stirring, to caramelize slightly. Sprinkle in oregano, basil, thyme, and red pepper flakes if using.
Stir well.
Deglaze and simmer: Return the beef and any juices to the pot. Add diced tomatoes, bay leaf, and beef broth. Scrape up any browned bits from the bottom.
Bring to a boil, then reduce to a gentle simmer. Cover partially and cook 30–40 minutes, until the beef is tender and the flavors meld.
Add the veg and beans: Stir in zucchini, green beans, kidney beans, and cannellini beans. Simmer 10 minutes until vegetables begin to soften.
Cook the pasta: Add the pasta and simmer until al dente, usually 8–10 minutes.
Stir often so it doesn’t stick to the bottom.
Finish with greens: Remove the bay leaf. Stir in spinach or kale and cook 1–2 minutes until wilted. Taste and adjust with salt and pepper.
For brightness, add a squeeze of lemon or a pinch of lemon zest.
Serve: Ladle into bowls and top with grated Parmesan, a drizzle of extra-virgin olive oil, and chopped herbs if you like.