Heat olive oil and butter in a large skillet or saucepan over medium heat.
Add the chopped onion and sauté until soft and translucent, about 3-4 minutes.
Stir in garlic and cook for another minute, until fragrant.
Add the mushrooms and sauté until they release their moisture and become golden brown, about 5-7 minutes.
Add the Arborio rice to the pan and stir to coat the rice in the oil and butter. Cook for 2-3 minutes to lightly toast the rice.
If using wine, pour it in now and cook until the liquid is mostly absorbed.
Begin adding the warm broth, one ladle at a time, stirring frequently and allowing the rice to absorb the liquid before adding more. Continue this process until the rice is tender and creamy, about 18-20 minutes.
Once the rice is cooked, stir in the Parmesan cheese, and season with salt and pepper to taste.
Remove from heat and let the risotto rest for 2-3 minutes before serving. Garnish with fresh parsley if desired.
Notes
The key to a perfect risotto is patience. It may take a little while, but the constant stirring and gradual addition of broth create the signature creamy texture.