Prep the rice: Rinse the wild rice under cold water until the water runs mostly clear. This helps it cook more evenly and prevents the soup from getting murky.
Sauté the aromatics: In a large pot or Dutch oven, heat the olive oil and butter over medium heat. Add the onion, carrots, and celery with a pinch of salt.
Cook, stirring occasionally, until softened, about 6–8 minutes.
Add garlic and herbs: Stir in the garlic, thyme, rosemary, and bay leaf. Cook for 30–60 seconds until fragrant.
Cook the mushrooms: Add the sliced mushrooms with another small pinch of salt. Cook, stirring now and then, until they release their moisture and brown slightly, 8–10 minutes.
If the pot looks dry, add a splash more oil.
Build flavor: Stir in the soy sauce or tamari and black pepper. Scrape up any browned bits from the bottom of the pot.
Simmer with rice: Add the rinsed wild rice and pour in the broth. Bring to a boil, then reduce to a steady simmer.
Cover partially and cook until the rice is tender and some grains split, about 45–55 minutes. Stir every 10–15 minutes.
Finish and season: Remove the bay leaf. Stir in the cream or coconut milk if using.
Taste and adjust with more salt, pepper, or a splash of soy sauce. A small squeeze of lemon brightens everything.
Garnish and serve: Ladle into bowls and top with chopped parsley. Serve with crusty bread if you like.