In a large Dutch oven, melt butter over medium heat.: You will notice the butter pooling and then foaming slightly as it reaches temperature, releasing a warm, nutty aroma that signals readiness. This scent is inviting and sets the foundation for the soup, carrying the flavors of the aromatics that follow. If the butter starts to brown quickly, the heat is too high, which can impart a toasted flavor that overwhelms the delicate profile. Keep the temperature at medium so the butter melts evenly, shimmering but not smoking. Use a spatula to swirl the bottom of the pot and make sure the whole surface is coated, this helps prevent sticking when you add the onion . A common mistake is overheating the butter and then adding the onion , which leads to uneven cooking and burnt bits, so watch for gentle bubbling and a glossy sheen before you proceed.
Add the diced onion, cook for 2-3 minutes or until it is soft and translucent. Add the garlic, and cook for 30 seconds while stirring constantly.: As the onion softens, it will release a sweet, savory aroma and become limp and glossy, signaling it is ready. When you add the minced garlic , the scent will lift sharply, aromatic and bright, but it cooks fast so stir constantly to avoid burning. Burned garlic turns bitter and ruins the base, so watch for the moment it becomes fragrant, typically about thirty seconds. The visual cue is softened, translucent edges on the onion , and the pan should be moist but not wet. If the onion starts to brown before it softens, lower the heat and stir more frequently to coax out the natural sugars gently.
To make roux, add the flour, and cook for 1 minute. Keep stirring. (cooking the flour is very important, you don’t want any raw flour flavor in your soup).: When you sprinkle in the flour , it will absorb the butter and form a paste that smells slightly toasty as it cooks. Stir continuously so the mixture heats evenly, which develops a mellow, nutty note and removes the raw taste. The texture should change from pasty to smoother and just a touch glossy, not clumpy. If lumps form, press them against the pot with your spoon and whisk them flat, which helps them dissolve when you add the liquids. A common slip is undercooking the roux, leaving a floury grain in the finished soup, so give it that full minute of gentle cooking before moving on.
While whisking slowly add the liquids to the roux (milk and stock).: As you stream in the warm milk and stock while whisking, the roux will loosen and the mixture will transform into a smooth, creamy base. The sound will shift from sticky to a gentle simmer as bubbles form across the surface, and the color becomes paler and more uniform. Whisking continuously prevents lumps and ensures the thickening power of the roux distributes evenly. If you add the liquids too fast, the roux can seize and create pockets of flour, so patience here results in a silkier texture. If lumps do appear, use the whisk vigorously or a small immersion blender later to smooth the base.
Stir in the broccoli florets, add the paprika, keep stirring and cook until the soup starts to thicken. Reduce the heat to low, and allow to simmer for 5-6 minutes or until the broccoli becomes tender.: When the broccoli goes into the pot, it will float and then sink as the liquid warms, releasing a fresh, vegetal perfume. The paprika adds a faint warmth and brightens the color slightly. As the soup begins to thicken, you will see it coat the back of a spoon, moving from runny to luxuriously viscous. Lowering to a gentle simmer helps the florets cook through without falling apart, keeping pleasant bite. Overcooking will make the broccoli mushy and dull the green color, so check for tenderness with a fork at around five minutes. If you prefer a smoother texture, you can cook a bit longer and then blend, but be mindful not to overcook into a bland puree.
Stir in the heavy cream and cheese, and stir until the cheese has melted. Season with salt and pepper to taste. Serve warm with extra shredded cheddar cheese.: At this stage, the soup takes on a rich, velvety sheen as the heavy cream integrates, and when the cheddar cheese melts it releases savory, tangy aromas that define the bowl. The cheese should be added off the highest heat to prevent it from breaking and becoming grainy; a gentle low temperature melts it silky and integrates it into the stock and dairy. Taste and then add salt and ground black pepper sparingly, since both the stock and cheddar cheese contribute sodium. A common pitfall is overheating after adding cheese, which causes separation, so keep the pot warm but not aggressively boiling. Serve immediately while the texture is luxuriously smooth, and sprinkle extra grated cheddar cheese on top for a fresh hit of flavor and a pretty finish.