Prep your vegetables. Dice the onion and celery.
Slice the carrots thin. Mince the garlic. Cut zucchini into half-moons, chop cauliflower into small florets, and cut green beans into bite-size pieces.
Warm the pot. Heat 2 tablespoons of olive oil in a large soup pot over medium heat until shimmering.
Sweat the aromatics. Add onion and celery with a pinch of salt.
Cook 4–5 minutes, stirring, until softened and lightly translucent.
Add carrots and garlic. Stir in carrots and cook 2 minutes. Add garlic and cook 30 seconds until fragrant, not browned.
Bloom the spices. Sprinkle in thyme, smoked paprika, and red pepper flakes. Stir for 30 seconds to wake up the flavors.
Build the base. Add diced tomatoes (with juices), broth, bay leaf, and the optional Parmesan rind.
Stir and bring to a gentle simmer.
Add sturdier vegetables. Stir in cauliflower and green beans. Simmer 10 minutes until they start to tenderize.
Add quick-cooking vegetables. Add zucchini and cook another 5–7 minutes, until all vegetables are tender but not mushy.
Finish with greens. Stir in spinach or kale and simmer 1–2 minutes until wilted. Remove the bay leaf and Parmesan rind.
Brighten and season. Add lemon zest and a squeeze of lemon juice.
Taste and adjust with salt and black pepper. If you want more heat, add a pinch of red pepper flakes.
Rest and serve. Let the soup sit off heat for 5 minutes so the flavors meld. Ladle into bowls and top with chopped parsley or dill.