1 tablespoon + 4 tablespoons unsalted butter, divided
1 small/medium sweet yellow onion, diced small
1 clove garlic, grated
1/4 cup all-purpose flour
4 cups (1 box) chicken stock (or vegetable stock)
1 cup half-and-half (whole milk or 2% milk will work but soup won’t be as creamy)
2 heads broccoli (florets and stems) diced into bite-size pieces
2 large carrots, trimmed, peeled, and sliced into very thin rounds, about 1/16th-inch
3/4 teaspoon salt, or to taste
3/4 teaspoon black pepper, or to taste
1/2 teaspoon smoked paprika or regular paprika, optional and to taste
1/2 teaspoon dry mustard powder, optional and to taste
pinch cayenne pepper, optional and to taste (doesn’t make soup spicy and serves to enhance flavor)
8 ounces grated high quality extra-sharp cheddar cheese plus a small amount reserved for garnishing bowls
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.
Add the garlic and cook about 30 seconds, stirring constantly so it doesn’t burn. Remove from heat and set pan aside.
In a large heavy-bottom pot 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.
Slowly add the stock, whisking constantly.
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.
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.
Add the salt, pepper, optional paprika, optional dry mustard powder, and optional cayenne. Stir to combine.
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.
While soup simmers, grate the cheese.
After simmering about 20 to 25 minutes, use an immersion blender to cream the soup.
Slowly add the half-and-half, whisking constantly.
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.
Transfer soup to bowls, garnish with reserved cheese, and serve immediately.