6 tablespoons unsalted butter
1 small onion, chopped
1/4 cup all-purpose flour
2 cups half-and-half
3 cups low-sodium chicken broth
2 bay leaves
1/4 teaspoon freshly grated nutmeg
Kosher salt and freshly ground pepper
4 7-inch sourdough bread boules (round loaves)
4 cups broccoli florets (about 1 head)
1 large carrot, diced
2 1/2 cups (about 8 ounces) grated sharp white and yellow cheddar cheese, plus more for garnish
Melt the butter in a large Dutch oven or pot over medium heat. Add the onion and cook until tender, about 5 minutes. Whisk in the flour and cook until golden, 3 to 4 minutes, then gradually whisk in the half-and-half until smooth. Add the chicken broth, bay leaves and nutmeg, then season with salt and pepper and bring to a simmer. Reduce the heat to medium-low and cook, uncovered, until thickened, about 20 minutes.
Meanwhile, prepare the bread bowls: Using a sharp knife, cut a circle into the top of each loaf, leaving a 1-inch border all around. Remove the bread top, then hollow out the middle with a fork or your fingers, leaving a thick bread shell.
Add the broccoli and carrot to the broth mixture and simmer until tender, about 20 minutes. Discard the bay leaves. Puree the soup in batches in a blender until smooth; you'll still have flecks of carrot and broccoli. Return to the pot. (Or puree the soup in the pot with an immersion blender.)
Add the cheese to the soup and whisk over medium heat until melted. Add up to 3/4 cup water if the soup is too thick. Ladle into the bread bowls and garnish with cheese.