Rinse the Arborio rice under cold water until the water runs clear, which helps remove excess starch and prevents the pudding from getting too thick.
In a large saucepan, combine the rinsed rice and whole milk. Bring to a gentle simmer over medium heat, stirring frequently to prevent sticking.
Once simmering, reduce the heat to low and allow the rice to cook for about 15-20 minutes, stirring often, until the rice is tender and the mixture is creamy.
Stir in the sweetened condensed milk, granulated sugar, vanilla extract, ground cinnamon, and salt. Mix well until the sugar is dissolved and the pudding is smooth.
If using, add the raisins and lemon zest. Cook for an additional 5-10 minutes, stirring frequently, until the pudding has thickened to your desired consistency.
Remove from heat and let the pudding cool for a few minutes. It will continue to thicken as it cools.
Serve warm or chilled in individual bowls. Garnish with chopped nuts for added texture and a sprinkle of cinnamon, if desired.
Notes
Adjust sugar based on sweetness preference. Garnish with nuts for added texture.