Clean mushrooms with a damp cloth and slice evenly.
Heat butter and olive oil in a large pot over medium heat.
Add onions and shallots; sauté until soft and translucent, about 5 minutes.
Stir in garlic and cook 30 seconds until fragrant.
Add sliced mushrooms and cook, stirring, until they release juices and brown, about 8–10 minutes.
Sprinkle flour over mushrooms, stir to coat and cook 1–2 minutes to remove raw flour taste.
Gradually pour in broth while stirring to avoid lumps; add thyme and bay leaf.
Bring to a simmer and cook 10 minutes to meld flavors.
Remove bay leaf; use an immersion blender to purée until smooth, or transfer in batches to a blender.
Stir in cream and soy sauce if using; warm gently without boiling. Adjust seasoning with salt and pepper.
Ladle into bowls, garnish with chopped parsley or chives and a drizzle of cream if desired; serve immediately.