Prep the ingredients: shred the cheddar, finely chop the onion, mince the garlic, and cut the broccoli into small florets (peel and finely chop the tender stems). Warm the half-and-half in a microwave-safe cup for 45–60 seconds to take the chill off; set aside.
Start the vegetables in broth: bring the chicken broth to a gentle simmer in a medium saucepan. Add the chopped broccoli stems and the carrots. Simmer 6–8 minutes until just tender-crisp; keep warm over low heat.
Build the base: in a Dutch oven over medium-low heat, melt the butter. Add the onion and garlic with a pinch of salt and cook 5 minutes, stirring occasionally, until soft and translucent without browning.
Make a blond roux: sprinkle in the flour and cook, stirring, for 2–3 minutes until it smells nutty and looks foamy.
Thicken with broth: while whisking, slowly stream in the hot broth with the carrots and stems. Bring to a gentle simmer and cook 5 minutes to thicken slightly.
Add the florets: stir in the broccoli florets and cook at a low simmer for 8–10 minutes, until the broccoli is tender but still bright green.
Creamy finish before cheese: stir in the warmed half-and-half and the Dijon. Season with salt and black pepper. Keep the heat on low and let it gently bubble for 2–3 minutes.
Choose your texture: blend about half the soup with an immersion blender right in the pot, leaving plenty of pieces for texture. (Or transfer 2 cups to a blender, vent the lid, blend until smooth, and return to the pot.)
Off heat, add the cheddar by the handful, stirring until fully melted and smooth. If the soup seems too thick, thin with a splash of warm broth or half-and-half.
Let the soup rest 5 minutes, then taste and adjust seasoning before ladling into bowls.