Brown the beef: In a large pot or Dutch oven, heat olive oil over medium-high heat.
Add the beef and a pinch of salt. Cook until browned, breaking it up if using ground beef, about 5–7 minutes. Drain excess fat if needed.
Sauté aromatics: Add onion, carrots, and celery.
Cook 4–5 minutes, stirring, until softened. Add garlic and cook 30 seconds until fragrant.
Build flavor: Stir in tomato paste, thyme, oregano, and smoked paprika. Cook 1 minute to caramelize the paste slightly.
Add vegetables and broth: Add bell pepper, zucchini, green beans, diced tomatoes with juices, beans, bay leaf, and beef broth.
Stir well and bring to a gentle boil.
Simmer: Reduce heat to a low simmer. Cover partially and cook 20–25 minutes until vegetables are tender and flavors meld. Taste and season with salt, pepper, and red pepper flakes.
Finish with greens: Stir in spinach or kale and cook 2–3 minutes until wilted and bright.
Serve: Remove the bay leaf.
Ladle into bowls, garnish with parsley, and add a squeeze of lemon for brightness if you like.