Prepare the mushrooms by cleaning them with a damp paper towel (avoid soaking them). Slice most of the mushrooms, but chop about 1/4 of them into smaller pieces to create texture variation in your finished soup.
Heat 2 tablespoons butter and olive oil in a large pot over medium-high heat until the butter is melted and slightly bubbling.
Add mushrooms in batches (overcrowding prevents proper browning) and cook until they’ve released their moisture and developed a golden-brown color, about 5-7 minutes per batch. Transfer to a plate and set aside.
Reduce heat to medium and add the remaining 2 tablespoons of butter to the pot. Add the diced onion and cook until translucent, about 3-4 minutes.
Stir in the garlic and cook for 30 seconds until fragrant, being careful not to burn it.
Sprinkle the flour over the onion and garlic mixture, stirring constantly for 1-2 minutes to create a roux and cook out the raw flour taste.
Gradually add the broth while whisking continuously to prevent lumps from forming, then add the bay leaf and thyme.
Return the mushrooms to the pot, add the soy sauce, and bring the mixture to a simmer. Reduce heat to medium-low and cook for 15 minutes to allow the flavors to meld.
Remove the bay leaf and transfer about 2/3 of the soup to a blender (or use an immersion blender directly in the pot). Blend until smooth, being cautious with the hot liquid.
Return the blended soup to the pot with the remaining chunky soup for texture. Add the heavy cream and sherry or wine (if using).
Gently simmer for an additional 5 minutes, then taste and adjust seasonings with salt and pepper.
Ladle the hot soup into bowls and garnish with fresh chives or parsley. Serve immediately with crusty bread.