In a Dutch Oven or large pot over medium heat, melt butter. Add onion, 1/2 teaspoon salt, and 1/4 teaspoon pepper and cook until softened, about 5 minutes. Stir in the garlic and cook 1 minute longer.: The kitchen will fill with a warm, slightly nutty aroma as the butter melts and begins to foam, and you want it to be just shimmering rather than browned. This gentle sizzle is the cue that the pot is ready for the onion . If the butter starts to darken quickly, lower the heat to avoid an overly toasted flavor. One common mistake is turning the heat too high, which can burn the fat and create a bitter base, so be patient and keep the temperature moderate.
Whisk in flour and cook, whisking continuously, until flour becomes golden brown, about 1 to 2 minutes. Whisk in milk.: As the onion sweats, it will go from sharp to sweet and translucent, releasing a comforting, savory perfume. The added salt draws out moisture, speeding softening and building flavor. Stir occasionally to ensure even cooking and watch for the edges to become glossy without browning. If the onion begins to color, reduce heat slightly and add a splash of the chicken broth to deglaze and cool the pan. Undercooked onion results in a raw bite, so allow it the full time to soften.
Stir in chicken broth, broccoli florets, carrot, and Dijon mustard. Bring to a simmer (do not boil). Reduce heat and continue to simmer until broccoli is tender, about 10 to 15 minutes.: When you add minced garlic , the aroma will brighten and sweeten within moments, but it can scorch quickly and become bitter, so stir constantly for about a minute until fragrant. The brief cooking tames garlic's sharpness and layers it into the base, making the soup smell irresistible. If any pieces darken prematurely, scrape them into the liquid promptly to prevent bitterness. Overcooking garlic is a frequent error, so be attentive during this short window.
Stir in the cheese, working in batches, until cheese is melted and soup is creamy. Season to taste with salt and freshly ground pepper (I like 1/2 teaspoon salt and 1/4 teaspoon pepper). Add a dash or two of hot sauce, if desired. Garnish with shredded cheese and croutons.: Once you sprinkle in the flour , whisking continuously is essential to prevent lumps and to develop a light, toasty flour flavor. You will notice the mixture thicken and the raw flour scent fade as it takes on a pale golden hue. This small amount of browning removes the pasty taste and contributes a rounded structure to the finished soup. If you skip thorough whisking you may end up with gritty pockets of uncooked flour, so keep stirring until smooth and fragrant.
Whisk in milk: Adding the milk in a steady stream while whisking helps the roux loosen and form a silky, homogeneous base. As the liquid integrates the texture will shift from pasty to smooth, releasing a faint milky aroma. Keep whisking until the mixture is lump free, then let it warm so the base becomes cohesive. If you pour the milk in too quickly you risk lumps, so a slow, steady stream is safer and ensures a velvety texture.
Stir in chicken broth broccoli florets carrot and Dijon mustard: When you add the chicken broth , the pot will open up with savory depth, and the floating broccoli florets and julienned carrot will introduce bright color and vegetal sweetness. The Dijon mustard blends in to add a faint tang that lifts the dairy. Stir thoroughly so the vegetables are evenly distributed, and watch the pan for the first small simmer bubbles that signal the heat is set correctly. If your broth is lukewarm the process will be sluggish, so use room temperature or warm stock for a confident simmer.
Bring to a simmer do not boil Reduce heat and continue to simmer until broccoli is tender about 10 to 15 minutes: As the soup reaches a gentle simmer you will see small, steady bubbles around the pot edge, and the aroma will deepen into a savory, steamy richness. Simmering rather than boiling preserves the dairy and prevents separation, while allowing the broccoli and carrot to soften evenly. The broccoli should be tender when pierced with a fork but still retain some structure. Boiling can break down the vegetables and create a flat flavor, so maintain a low simmer and stir occasionally to keep heat balanced.
Stir in the cheese working in batches until cheese is melted and soup is creamy: Off the heat or at very low warmth, add the shredded cheddar cheese in small portions so it melts smoothly into the pot, forming glossy, velvety ribbons. The smell will become richly cheesy without becoming cloying, and the texture will change to luxurious thickness. Allow each addition to incorporate fully before adding more to prevent stringiness or graininess. A common misstep is adding all the cheese at once on high heat, which can cause the dairy to separate and become oily, so gentle integration is key.
Season to taste with salt and freshly ground pepper: Tasting now allows you to account for the saltiness of the cheddar cheese and adjust the seasoning precisely. Add small increments of salt and a pinch of freshly ground pepper until the balance feels right. The hot sauce can be added at this point to personalize the finish. Over seasoning early in the process without tasting after the cheese is added can lead to an overly salty soup, so fine tune at the end.
Add a dash or two of hot sauce if desired Garnish with shredded cheese and croutons: A little hot sauce brightens the bowl with gentle acidity and heat, and the final garnish of extra shredded cheddar cheese and croutons brings contrasting textures. The croutons will crisp against the creamy surface, offering a pleasing bite. Add them just before serving so they stay crisp and avoid becoming soggy. Serving too far in advance with croutons added will result in loss of that delightful crunch.