Rinse the rice under cold water until the water runs clear to remove excess starch.
In a heavy-bottomed saucepan, combine the rice, milk, and heavy cream. Bring to a gentle simmer over medium-low heat, stirring occasionally to prevent the rice from sticking to the bottom.
Once the mixture begins to simmer slightly, add the sugar, salt, and cinnamon. Lower heat and stir gently every 3-4 minutes, allowing the flavors to meld.
Reduce heat to low and let the mixture cook uncovered for about 25-30 minutes. The rice should slowly absorb the liquid and expand. Keep occasionally stirring to prevent scorching.
In a separate bowl, whisk the eggs until lightly beaten. Take approximately ½ cup of the hot rice mixture and slowly add it to the eggs while continuously whisking to temper them.
Gradually pour the tempered egg mixture back into the pot, stirring constantly.
Add the vanilla extract, butter, and raisins (if using). Allow the pudding to cook for an additional 5-7 minutes, until it reaches a thick, creamy consistency that coats the back of a wooden spoon.
Remove from heat and let cool slightly before serving. The pudding will continue to thicken as it cools.