01 - Heat butter and olive oil in a large pot or Dutch oven over medium heat. Add chopped onion and sauté until translucent, approximately 4 minutes.
02 - Add minced garlic, diced jalapeños, and red bell pepper to the pot. Cook for 5 minutes, stirring occasionally, until vegetables are softened.
03 - Stir in smoked paprika, cumin, and cayenne pepper. Cook for 1 minute until fragrant, being careful not to burn the spices.
04 - Sprinkle flour over the vegetable mixture, stirring constantly for 2-3 minutes to cook out the raw flour taste and create a roux base.
05 - Gradually pour in vegetable broth while whisking constantly to prevent lumps. Bring to a simmer and cook for 10 minutes to thicken slightly.
06 - Add cubed cream cheese to the simmering soup, stirring continuously until completely melted and smoothly incorporated.
07 - Stir in sharp cheddar and Monterey Jack cheeses one handful at a time, allowing each addition to melt before adding more.
08 - Pour in whole milk and stir to combine. Season generously with salt and black pepper to taste. Simmer gently for 5 more minutes.
09 - Use an immersion blender to purée the soup until smooth, or leave slightly chunky if preferred. Keep warm on low heat.
10 - Butter one side of each bread slice. Place 4 slices butter-side down in a skillet over medium heat. Divide shredded cheeses evenly among bread slices, then top with remaining bread slices, butter-side up.
11 - Grill sandwiches for 2-3 minutes per side until golden brown and cheese is melted. Transfer to a cutting board.
12 - Cut each sandwich into 4 strips for dipping. Ladle hot soup into bowls, garnish with green onions and bacon crumbles. Serve with grilled cheese dippers alongside.