Prep the mushrooms: Wipe them clean with a damp paper towel. Trim tough stems (especially on shiitakes) and slice. Aim for mixed sizes—some thin, some thicker—to add texture.
Sweat the aromatics: In a large pot, heat olive oil and 2 tablespoons butter over medium heat.
Add onion and a pinch of salt. Cook 5–7 minutes until translucent and sweet. Stir in garlic for 30 seconds.
Brown the mushrooms in batches: Add half the mushrooms and a pinch of salt.
Let them sit to brown before stirring, about 6–8 minutes. Transfer to a bowl. Repeat with the remaining mushrooms, adding the last tablespoon of butter if needed.
This step builds deep, savory flavor.
Deglaze: Return all mushrooms to the pot. Add sherry or wine. Scrape up browned bits.
Let it simmer 1–2 minutes to cook off the alcohol.
Add thyme and flour: Stir in thyme and sprinkle flour over the mushrooms. Cook 1–2 minutes, stirring, to remove the raw flour taste.
Build the soup: Add the broth slowly while stirring. Add the bay leaf.
Bring to a gentle simmer and cook 10–12 minutes, uncovered, to meld flavors.
Blend to your preferred texture: Remove the bay leaf. For a rustic soup, blend half the pot with an immersion blender and leave the rest chunky. For a smoother finish, blend more.
Adjust with a splash of broth if it gets too thick.
Finish with cream: Stir in the heavy cream. Simmer on low 2–3 minutes. Taste and season with salt and plenty of black pepper.
Add a small squeeze of lemon if the soup tastes flat.
Serve: Ladle into bowls. Garnish with chopped parsley or chives and a drizzle of cream or olive oil if you like. Serve with crusty bread.