Melt 2 tablespoons butter in a large saucepan or soup pot.
Add onion, garlic, carrots, and salt to the melted butter and cook over medium heat for 5 minutes. Stir frequently to prevent burning.
Add the rest of the butter and melt.
Whisk in the flour and continue to whisk until incorporated.
Slowly add milk and whisk until everything is well combined and there are no clumps.
Whisk in the chicken broth, add the bay leaf, and turn up the heat to high; bring the soup to a boil.
Add the broccoli florets, season soup with salt and pepper, and cook the soup over medium heat for 20 minutes.
Remove from heat and pour batches of the soup into a high-powered blender or a food processor, and process until smooth. You can also use an immersion blender. Return the soup to the pot; continue to cook over medium-low heat for 1 minute. Add in the cheese and stir until melted and completely combined.
Stir in the paprika and nutmeg. Taste the soup for salt, pepper, and seasonings, and adjust accordingly.
Remove from heat.
Ladle into soup bowls and serve.