In a large soup pot, melt the butter over medium heat. Add the chopped onion and minced garlic. Sauté for about 2-3 minutes until the onion becomes translucent and the garlic is fragrant.
Sprinkle the all-purpose flour over the sautéed onions and garlic. Stir constantly for about 2 minutes to create a roux. The roux will thicken the soup.
Gradually pour in the vegetable broth or water and the half & half (half cream and half milk) while stirring to prevent lumps. Add the salt, black pepper, and paprika. Continue to stir until the mixture thickens slightly.
Add the broccoli florets and finely chopped or julienned carrot to the soup. Allow the soup to simmer over medium heat for about 10 minutes, or until the broccoli and carrot are tender.
Gradually add the shredded cheddar cheese to the soup while stirring. Continue to cook and stir until the cheese is completely melted and the soup is smooth and creamy. Taste the soup and adjust the seasoning with more salt or pepper, if needed.
Ladle the hot broccoli cheese soup into bowls. It's ready to serve! If desired, you can garnish each serving with additional shredded cheddar cheese or some chopped fresh parsley. Enjoy!