In a small saucepan, add 1 tablespoon butter, the diced onion, and sauté over medium heat until the onion is translucent and barely browned, about 4 minutes. Stir intermittently.: As the onion softens you will smell a sweet, lightly caramelized aroma and hear gentle sizzling, signals that the sweet compounds are developing. This stage creates the aromatic base that supports the entire soup. Use medium heat so the edges take on a faint golden tint rather than dark brown spots, which would introduce bitter notes. A common mistake is rushing this step with high heat, which can brown the onion too much and create an off taste, so keep the heat steady and stir intermittently to promote even cooking.
Add the garlic and cook about 30 seconds, stirring constantly so it doesn’t burn. Remove from heat and set pan aside.: The scent of garlic will bloom almost immediately, lending savory depth. Stir constantly because garlic burns quickly and turns bitter, which would ruin the subtle foundation. Once it becomes fragrant, take the pan off the heat to prevent residual heat from overcooking the garlic. A common error is leaving it on the burner, which can lead to a sharp, burnt flavor; remove promptly and set it aside for later incorporation.
In a large heavy-bottom pot (I use this Le Creuset Signature Enameled Cast-Iron 6-3/4-Quart Oval French (Dutch) Oven) add 4 tablespoons butter, flour, and cook over medium heat for about 3 to 5 minutes, whisking constantly, until flour is thickened. You are making a roux and it’s very important the mixture is thick or soup will never thicken properly later.: At this stage you will notice the mixture become glossy and take on a faintly nutty scent, which means the raw flour flavor has cooked out. The roux is the structural backbone that allows the soup to thicken and coat the spoon, so whisk constantly to prevent lumps and scorch marks. If the roux looks too pale or watery, cook a bit longer until it gains a slightly toasted aroma. An easy mistake is adding liquids too soon, which yields a thin soup, so be patient and ensure the roux is properly cooked.
Slowly add the vegetable stock, whisking constantly.: As you slowly pour in the vegetable stock the mixture will hiss and steam, and the whisking will transform the roux into a smooth, velvety base. Adding the liquid gradually prevents clumps and helps the starches hydrate evenly, so take your time and keep whisking until the liquid is fully incorporated. If you rush and dump all the stock at once, you risk lumps and an uneven texture that will be hard to remedy later.
Slowly add the half-and-half, whisking constantly.: The addition of half and half softens the mouthfeel and adds creaminess; you should see the liquid thicken slightly and take on a glossy sheen. Whisking keeps the emulsion stable, reducing the chance of separation later. A frequent oversight is adding cold dairy too quickly to a hot base, which can cause curdling; temper by adding slowly and maintaining gentle heat.
Allow mixture to simmer over low heat for about 15 to 20 minutes, or until it has reduced and thickened some. Whisk intermittently to re-incorporate the ‘skin’ that inevitably forms, this is normal.: During this simmer the kitchen will fill with a rich, creamy scent and the base will reduce to a thicker consistency that clings to the spoon. Occasional whisking reincorporates the thin film or skin that forms on top and ensures even texture. Do not let it simmer vigorously, which can separate the dairy and alter the mouthfeel; low and steady heat is best. A typical mistake is lifting the lid too often and losing steam, which slows reduction, so keep to gentle monitoring.
While mixture is simmering, chop the broccoli and carrots. After simmering 15 to 20 minutes, add the broccoli, carrots, and the onion and garlic you previously set aside.: Freshly cut broccoli and thin carrot rounds will brighten the pot with green and orange colors, and you'll notice a light vegetal aroma when they hit the simmering base. Adding the reserved sautéed aromatics now layers flavor and integrates those earlier caramelized notes. Avoid adding very large pieces, which take longer to cook and can create uneven texture; aim for uniform bite-size pieces so everything cooks evenly.
Add the salt, pepper, optional paprika, optional dry mustard powder, and optional cayenne. If you don’t have these seasonings on hand, it’s okay, but they do add subtle depth of flavor. Stir to combine.: This moment is about seasoning balance, where the faint warmth of cayenne and the tang of dry mustard support the cheese. Stir thoroughly so the seasonings distribute evenly and taste toward the end to adjust. Over-salting is a common pitfall, especially with aged cheddar cheese that can be salty, so season gradually and taste before serving.
Allow soup to simmer over low heat for about 20 to 25 minutes, or until it has reduced and thickened some. Whisk intermittently to re-incorporate the ‘skin’ that inevitably forms, this is normal.: As the vegetables soften, you will see the broth take on a thicker, creamier body and the aroma will become densely savory. Intermittent whisking keeps the surface smooth and helps maintain heat distribution. A typical mistake is increasing the heat to hurry cooking, which risks separation of the dairy; maintain low heat and gentle simmering for the best texture.
While soup simmers, grate the cheese. After simmering about 20 to 25 minutes, add most of the cheese, reserving a small amount for garnishing bowls. Stir in the cheese until melted and incorporated fully, less than 1 minute.: Freshly grated cheddar cheese melts more uniformly and gives the soup a glossy finish; you'll notice the aroma of sharp cheese bloom as it melts. Stir quickly and gently to incorporate the cheese into the hot base, and watch for a smooth, homogenous texture. A common error is using pre-grated bagged cheese that contains anti-caking agents, which resist melting and create grainy textures, so always grate fresh for the best result.
Transfer soup to bowls, garnish with reserved cheese, and serve immediately.: Serve when the soup is still hot so the cheese is melty and the flavors are lively; a sprinkle of reserved cheddar cheese on top provides a pretty finish and little bursts of extra cheesiness. The steam rising from the bowl and the sight of green florets suspended in creamy broth make the first spoonful feel celebratory. Don’t let the soup sit too long before serving, because cooling can thicken and dull the flavors; if you must hold it, reheat gently to revive the texture.