Warm the Stock: Pour the vegetable stock into a medium saucepan and place over low heat to keep it warm. If using, add the saffron threads to the stock.
Sauté the Aromatics: In a large, deep skillet or Dutch oven, melt 2 tablespoons (30 ml / 1 fl oz) of the butter (or heat the oil) over medium heat.
Add the minced onion and cook, stirring occasionally, until softened and translucent, about 3-5 minutes.
Toast the Rice: Add the Arborio rice to the skillet.
Stir constantly for 2-3 minutes, until the grains are coated in fat and have turned glossy and slightly translucent at the edges.
Deglaze the Pan: Season with a pinch of salt and pepper.
Pour in the white wine and stir continuously until it has been completely absorbed by the rice.
Add Stock & Stir: Begin adding the warm stock, one ladleful (about 1/2 cup / 480 ml) at a time.
Stir frequently until the liquid is almost fully absorbed before adding the next ladleful.
Continue this process, stirring often to release the rice's starches, which creates the creamy texture. The heat should be at a medium simmer.
Cook to Perfection: After about 20 minutes, start tasting the rice. It's ready when it's tender with a slight chew in the center (al dente). This can take up to 30 minutes in total.
Finish & Serve: Remove the skillet from the heat. Vigorously stir in the remaining 2-4 tablespoons (60 ml / 2 fl oz) of butter and the grated Parmesan cheese. The risotto should be creamy and flow gently.
Taste and adjust seasoning with more salt and pepper if needed.
Serve immediately, garnished with extra Parmesan.
Don't overcook the rice! Begin tasting it after 20 minutes. The ideal texture is 'al dente'—tender and creamy on the outside with a slight bite or chew in the center.