In a large pot or Dutch oven, heat olive oil over medium heat. Add diced onions and cook for 3–4 minutes until soft and translucent. Stir in the garlic, carrots, celery, and mushrooms, and sauté for another 5–6 minutes until fragrant and lightly browned.
Stir in the wild rice, thyme, rosemary, black pepper, and a generous pinch of salt. Pour in the vegetable or chicken broth and bring to a gentle boil. Once boiling, reduce heat to low, cover, and simmer for about 40–45 minutes until the wild rice is tender and slightly chewy.
In a small bowl, whisk together milk and flour (or cornstarch) until smooth. This slurry will help thicken the soup without making it heavy. Slowly stir the slurry into the soup, allowing it to combine and thicken as it simmers.
Let the soup simmer uncovered for another 5–10 minutes, stirring occasionally. Add more broth or milk if you prefer a thinner consistency. Taste and adjust seasoning as needed, adding extra salt, pepper, or herbs.
For a richer flavor, stir in Parmesan cheese until melted and well incorporated. This step adds depth without overpowering the natural earthiness of the soup.
Ladle the soup into bowls and top with freshly chopped parsley. Serve warm with crusty bread, a side salad, or just on its own. The soup will thicken slightly as it cools.