Melt butter in a large pot over medium heat. Add carrots and onion and sauté until just starting to soften, then add garlic and sauté until garlic becomes aromatic.
Add flour and stir well to make a roux. Cook, stirring frequently, for 3 minutes until it starts to become fragrant.
Combine the milk and half & half and slowly pour into the roux. Whisking until fully combined. Turn the heat up and add the beer. Bring to a boil, whisking frequently until foam subsides.
Simmer on low heat for 10 minutes until thick. Remove from heat and whisk in the cheese one handful at a time, stirring until fully incorporated after each addition of cheese. Season with salt and pepper to taste.