Sauté the base: Heat 2 tablespoons oil in a large pot over medium. Add onion, carrot, and celery. Cook 5–7 minutes, stirring, until softened and lightly golden.
Add aromatics: Stir in garlic, thyme, oregano, and smoked paprika.
Cook 30–60 seconds until fragrant.
Build the soup: Add cabbage, bell pepper, potatoes, tomatoes with juices, broth, and bay leaf. Stir and bring to a boil.
Simmer: Reduce heat to a gentle simmer. Cover partially and cook 20–25 minutes, until potatoes and cabbage are tender.
Add beans and zucchini: Stir in beans and zucchini (if using).
Simmer 5–10 minutes more. Taste and season with salt and pepper.
Finish and serve: Remove the bay leaf. Stir in a handful of chopped parsley or dill.
Squeeze in a little lemon juice for brightness. Serve hot.