1/4tspFreshly Ground Black Pepperto taste (start with 1/4 tsp)
6TbspAll-Purpose Flourfor the roux
3cupsMilkpreferably 1% or 2%, room temperature helps avoid curdling
1/2cupHeavy Creamadds richness
2cupsShredded Sharp Cheddar Cheesefreshly shredded melts best
1/3cupFinely Shredded Parmesan Cheeseadds umami and depth
Instructions
In a large pot over medium heat, melt 1 1/2 Tbsp butter. Add carrots, celery, and onion; sauté for 3-4 minutes until softened and translucent, stirring so they don’t brown.
Add garlic and sauté for 30 seconds longer, just until fragrant. Be careful not to burn the garlic.
Stir in chicken broth, potatoes, thyme, salt, and pepper. Bring to a boil over medium-high heat, then reduce heat to medium, cover, and cook for 15 minutes until potatoes begin to soften.
Add broccoli and cook for an additional 5 minutes until all vegetables are tender when pierced with a fork.
In a separate saucepan, melt the remaining 4 Tbsp butter over medium heat. Monitor the butter so it doesn’t brown.
Stir in flour and cook, whisking constantly for 1 minute to make a smooth roux and remove the raw flour taste.
Gradually add milk while whisking vigorously to remove lumps, pouring in a thin stream and whisking continuously.
Cook until the mixture begins to boil and thicken, about 3–5 minutes, then stir in heavy cream and heat through.
Pour the creamy mixture into the soup pot and stir well to combine with the vegetables and broth. Simmer gently for 2–3 minutes so flavors meld.
Remove from heat and mix in cheddar and parmesan cheese until melted and smooth. Taste and adjust seasoning with salt and pepper.
Serve warm and enjoy! Garnish with extra shredded cheddar, cracked pepper, chives, or crispy croutons if desired.
Notes
For best results, use freshly shredded cheese and let milk sit at room temperature before adding to the roux. If the soup becomes too thick after refrigerating, thin with a splash of milk or broth while reheating.