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.: The moment the pot warms you will notice a faint shimmer from the olive oil and the butter will melt and foam, giving off a rich, toasty aroma. This combination prevents sticking and builds flavor right away. A good rule is to let the butter stop foaming before adding vegetables so it does not burn, and if the pot seems too hot, lower to medium to avoid browning too fast.
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).: As you add the diced onion , carrots , celery , potatoes , and garlic , you will hear a gentle sizzle. Stir occasionally so the pieces cook evenly and begin to sweat, releasing sweet, savory scents. If you crowd the pot the vegetables will steam instead of caramelize, so give them room and stir every few minutes to encourage color and depth.
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.: During this time the edges of the vegetables will start to soften and the kitchen will fill with an oniony sweetness. Use the tip of a knife to check tenderness; they should be tender but not falling apart. A common mistake is rushing the step with higher heat, which causes burning, so keep the heat moderate to coax gentle browning.
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.: When you add the chopped cauliflower and dried herbs, toss them with the softened vegetables so the spices bloom in the residual fat. You will notice the aroma of thyme and oregano become more pronounced as they heat, which infuses the whole pot. Avoid adding all the salt at once if your stock is salty, taste later to fine tune.
Ladle into bowls; top with more cheese and fresh thyme if desired. Serve with toasted, buttered bread. Enjoy!: After stirring, the vegetables should look cohesive with the seasonings evenly distributed, and you may see faint traces of butter coating the pieces. This step readies the pot for the stock and ensures no pockets of unseasoned veg remain. If you skip stirring, the flavors will be uneven.
Add chicken stock: As the chicken stock hits the pot it will steam and lift the browned bits off the bottom, enriching the liquid. Use stock at room or warm temperature to avoid a cold shock that slows cooking. If the stock is very salty, dilute with a splash of water to prevent over-seasoning.
Stir and bring to a boil, then reduce to a gentle simmer: Bring the pot to an active boil to rapidly integrate flavors, then lower to a gentle simmer so the vegetables cook through without disintegrating. A rolling boil can break down the texture too quickly, so watch for a steady stream of small bubbles rather than furious bubbling.
Cover and cook for 10 to 15 minutes or until veggies are tender: With the lid on you will trap steam and accelerate cooking; check at the 10 minute mark by piercing the potatoes and cauliflower with a fork. They should be easily pierced but still hold shape. Overcooking results in a watery soup and can flatten the flavor, so stop as soon as tenderness is reached.
In a separate small pot, melt the remaining 4 tbsp butter over medium heat: The butter will melt and begin to bubble slightly as water evaporates, giving off a nutty scent. This controlled heat prevents the butter from burning before you add flour. If the butter browns too quickly lower the heat immediately.
Sprinkle flour evenly across the top of the melted butter, then whisk constantly for 1 minute: As you add the flour it will form a paste with the butter, and whisking ensures it cooks gently, losing its raw taste. You will see the mixture thicken and become glossy, which signals readiness for the liquid. Do not skip the minute of cooking, as undercooked flour can make the sauce taste pasty.
Very gradually add milk while whisking constantly: Pouring a thin stream of whole milk while whisking prevents lumps and produces a smooth béchamel. You will feel the mixture loosen and then thicken again; that is the sauce coming together. If lumps appear, use a small whisk and brisk circular motions, or pass through a fine sieve to rescue it.
Cook for 5 to 6 minutes, until nicely thickened (do not boil): Simmer gently until the sauce coats the back of a spoon, producing a velvety sheen. Boiling can cause separation and a grainy texture, so maintain medium to low heat. If the sauce becomes too thick, whisk in a splash of stock or milk to reach the desired consistency.
Remove from heat and stir in cheese, a handful at a time, until melted: Adding the shredded Cheddar cheese off the heat prevents it from seizing and turning grainy. You will see the sauce grow glossy and fragrant as the cheese melts, thickening the base. If pre-shredded cheese clumps, the sauce can become slightly grainy, so use freshly shredded cheese for the creamiest result.
Reduce soup heat to low: Lowering the heat protects the dairy and helps the flavors marry gently without scorching. At this stage the broth will steam softly and release a comforting, savory perfume. Keeping it too hot risks curdling when you add the cheese sauce.
Pour the cheese sauce into the soup pot and stir: As the warm sauce meets the simmering vegetables, you will notice the soup thicken and take on a rich, creamy sheen. Stir thoroughly so the sauce disperses evenly, creating a uniform texture. If you pour too quickly, you risk localized clumps, so pour slowly while stirring.
Taste and adjust seasoning with additional salt and pepper: Tasting now lets you fine tune, because the cheese and stock influence the final salt level. Add small increments, stirring and tasting between additions. Over-salting is harder to fix than under-seasoning, so proceed cautiously.
For a creamier soup, blend 1 to 2 cups and stir it back into the pot: Blending part of the soup creates silkiness while leaving some texture from the unblended pieces, producing complexity in each spoonful. Use an immersion blender for control, pulsing until you reach the desired body. Pureeing everything can be delightful too, but you lose the contrasting bites.
Ladle into bowls: As you ladle the soup the surface should shimmer and small swirls of creaminess will form. Serve immediately to preserve the best texture and temperature. If held too long the soup thickens, so keep an eye on serving timing.
Top with more cheese and fresh thyme if desired: A final sprinkle of shredded Cheddar cheese and a few leaves of fresh thyme add aroma and a finishing flavor lift. These small accents make the presentation feel intentional, and fresh herbs bring a bright note that cuts through the richness.
Serve with toasted, buttered bread: The crisp, buttered crust soaks up the soup and adds a satisfying textural contrast. Offer slices hot from the toaster so they remain crisp at first and then soften as they absorb the broth. Avoid serving stale bread, which will not provide the same enjoyment.
Enjoy!: The final bowl should be warm, flavorful, and comforting, with a creamy body and balanced seasoning. Sit down, breathe in the aromas, and relish the simple pleasures of a well-made soup.