Heat oil and 1 tbsp butter in a large pot over medium-high heat. Add onion, carrots, celery, potatoes, and garlic. Cook, stirring occasionally, for 8–10 minutes until softened. Add cauliflower, thyme, oregano, salt, and pepper. Stir to combine.
Add chicken stock. Stir and bring to a boil, then reduce to a gentle simmer. Cover and cook for 10–15 minutes or until veggies are tender (easily pierced with a fork).
In a separate small pot, melt the remaining 4 tbsp butter over medium heat. Sprinkle flour evenly across the top of the melted butter, then whisk constantly for 1 minute. Very gradually add milk while whisking constantly. Cook for 5–6 minutes, until nicely thickened (do not boil). Remove from heat and stir in cheese, a handful at a time, until melted.
Reduce soup heat to low. Pour the cheese sauce into the soup pot and stir. Taste and adjust seasoning with additional salt and pepper (about 1/4 tsp more each or to taste). For a creamier soup, blend 1–2 cups and stir it back into the pot.
Ladle into bowls; top with more cheese and fresh thyme if desired. Serve with toasted, buttered bread. Enjoy!
Video
Notes
Note 1: Whole milk works best for creamy soup. Lower-fat milk (2% or 1%) can be used but won’t be as thick. Avoid plant-based milk for this recipe.Note 2: Use freshly shredded sharp or extra-sharp Cheddar for the best flavor and texture. Pre-shredded cheese may cause the soup to be grainy.Note 3: Dice potatoes into 1/2-inch pieces and chop cauliflower into small bite-size pieces. Smaller pieces cook faster and prevent over-reducing the broth.Storage: Cool soup and store it in an airtight container in the fridge for up to 4 days or freeze in an airtight bag for up to 3 months. Reheat on low, stirring often, and add broth if it’s too thick. Avoid boiling.