In a large Dutch oven or soup pot, heat butter and olive oil over medium heat until the butter is fully melted.
Add chopped onion, carrots, and celery. Cook, stirring occasionally, until the vegetables are very soft and starting to lightly brown, about 8 to 10 minutes.
Add minced garlic and cook for 30 seconds, just until fragrant.
Sprinkle in flour and stir constantly for about 1 minute.
Slowly pour in the beer while whisking constantly to avoid lumps. Let it simmer for 2 to 3 minutes to cook off the alcohol.
Whisk in the chicken broth, then add milk and heavy cream. Stir well to combine.
Add Dijon mustard, Worcestershire sauce, paprika, salt, and pepper. Reduce heat to medium-low and let the soup simmer gently for 10 to 15 minutes, stirring occasionally. Do not let it boil, keep it just below a simmer to prevent the dairy from curdling.
If you want a smooth soup, use an immersion blender directly in the pot and blend until smooth. If you’re using a regular blender, carefully ladle the soup into the blender in batches, blend until smooth, and return it to the pot.
Turn heat to low. Add cheddar and Monterey Jack cheeses a handful at a time, stirring constantly after each addition until fully melted and smooth.
Taste and adjust seasoning with more kosher salt and pepper, if needed.
Ladle soup into bowls and garnish with croutons