**Get the broth ready.** If using a stock cube, dissolve it in 3 cups (720ml) hot water and set aside. If using carton broth, measure out 3 cups.
**Brown the mushrooms — first batch.** Heat 1 tbsp olive oil and 1 tbsp butter in a large pot over medium-high heat. Add half the mushrooms in a single layer. Cook without stirring for 3–4 minutes until the edges are deep golden-brown. Stir and cook 2 minutes more. Transfer to a plate.
**Brown the mushrooms — second batch.** Add another drizzle of olive oil to the pot. Repeat with the remaining mushrooms. Transfer to the same plate.
**Soften the onion.** Lower heat to medium. Add the remaining 2 tbsp butter to the pot. Add the diced onion and a pinch of salt. Cook, stirring occasionally, for 5 minutes until soft and translucent. Add the garlic and cook, stirring, for 1 minute more.
**Make the roux.** Sprinkle the flour over the onion and stir well to coat. Cook, stirring constantly, for 2 minutes. The mixture will look like a thick pale paste — that's correct.
**Add the liquid.** If using wine, pour it in now and stir vigorously for 1 minute to lift any browned bits from the bottom of the pot. Then pour in the broth slowly, stirring constantly. Add the soy sauce and thyme. Stir until fully smooth with no lumps.
**Simmer.** Bring to a gentle simmer. Add all the browned mushrooms back into the pot. Cook uncovered for 10–12 minutes.
**Partially blend.** Carefully ladle 2 cups (480ml) of the soup into a blender. Blend until smooth. Pour back into the pot and stir. (Alternatively, use an immersion blender directly in the pot for 10 seconds in one spot.)
**Add the cream.** Lower heat to the lowest setting. Pour in the cream slowly, stirring. Do not boil. Warm gently for 2 minutes. Taste and season with salt and pepper.
**Serve** immediately, garnished with a drizzle of cream and fresh thyme if desired.