In a large saucepan or Dutch oven, heat the olive oil and butter over medium heat.
Add the chopped onion and cook until softened, about 5-7 minutes. Add the minced garlic and cook for another minute until fragrant.
Add the sliced mushrooms and cook until they release their liquid and start to brown, about 5-7 minutes.
Stir in the Arborio rice and toast for about 1-2 minutes until the edges of the grains are translucent.
Pour in the white wine and stir, scraping up any browned bits from the bottom of the pan. Let it simmer until mostly absorbed.
Begin adding the warm vegetable broth, one ladleful at a time, stirring constantly and waiting until each ladleful is almost completely absorbed before adding the next. Continue this process for about 20-25 minutes, or until the rice is creamy and al dente.
Stir in the fresh spinach and cook until wilted.
Remove from heat and stir in the grated Parmesan cheese. Season with salt and black pepper to taste.
Serve immediately.
Notes
For a richer flavor, you can use chicken broth instead of vegetable broth. Garnish with fresh parsley if desired.