Prep the mushrooms. Wipe them clean with a damp paper towel. Slice most of them; reserve a small handful to chop finely.
This mix of sizes builds better texture.
Brown in batches. Heat a large pot over medium-high. Add 1 tablespoon butter and half the olive oil. Sauté half the mushrooms with a pinch of salt until they release liquid and turn golden at the edges, about 6–8 minutes.
Transfer to a bowl and repeat with remaining mushrooms and another tablespoon of butter.
Sweat the aromatics. Lower heat to medium. Add the last tablespoon of butter to the pot. Stir in onion and a pinch of salt.
Cook until soft and translucent, 4–5 minutes. Add garlic and thyme; cook 30–60 seconds until fragrant.
Deglaze. Pour in the white wine. Scrape up the browned bits from the bottom of the pot.
Let it simmer for 1–2 minutes to reduce slightly. If skipping wine, add a splash of broth instead.
Add mushrooms and broth. Return all mushrooms to the pot. Pour in the broth and bring to a gentle simmer.
Add smoked paprika if using. Cook uncovered for 12–15 minutes to concentrate flavor.
Blend to your liking. For a rustic soup, blend about one-third with an immersion blender and leave the rest chunky. For ultra-smooth, blend it all in batches.
Keep a towel over the blender lid and vent steam carefully.
Enrich the base. Lower heat to medium-low. Whisk in cream cheese until melted and smooth. Stir in heavy cream.
Simmer 2–3 minutes, keeping it below a boil to avoid curdling.
Season and finish. Taste and add salt and pepper. Stir in Parmesan if using. If you want it thicker, simmer a few more minutes to reduce.
Garnish with chopped parsley before serving.