Warm the pot: Set a large pot or Dutch oven over medium heat.
Add butter and olive oil. Once melted and shimmering, you’re ready for the vegetables.
Sauté the aromatics: Add onion, carrots, and celery. Season with a pinch of salt.
Cook 6–8 minutes, stirring occasionally, until soft and lightly golden.
Add garlic and herbs: Stir in garlic, thyme, and the bay leaf. Cook 30–60 seconds, just until fragrant. Don’t let the garlic brown.
Make the roux: Sprinkle flour over the vegetables.
Stir well to coat. Cook 1–2 minutes to remove the raw flour taste. The mixture will look thick and a bit pasty.
Whisk in the broth: Slowly pour in the chicken broth while stirring to prevent lumps.
Bring to a gentle simmer.
Simmer the base: Add the potatoes (if using). Simmer 12–15 minutes, until the potatoes are tender and the soup has slightly thickened.
Add chicken and veggies: Stir in the cooked chicken and peas or corn, if using. If you’re using small pasta instead of potatoes, add it now and cook until just tender.
Make it creamy: Reduce the heat to low.
Pour in the cream and stir gently. Simmer 3–5 minutes more. Do not let it boil hard after adding the cream.
Finish and season: Remove the bay leaf.
Add parsley, a squeeze of lemon, and red pepper flakes if you like heat. Taste and adjust salt and pepper.
Serve: Ladle into bowls and enjoy with crusty bread or crackers. The soup will thicken slightly as it cools.