Rinse a large saucepan with cold water. Don't dry. Set on stove-top over medium heat. Add milk. Heat milk to boiling, over medium heat, stirring regularly. WATCH CLOSELY as it nears the boil! When milk hits the boil, it will boil up and possibly over. That's not a good thing.
When milk boils, stir in rice and keep stirring until mixture returns to the boil. Reduce heat to a shade higher than low, or whatever level on your stove allows the mixture to gently simmer (bubble breaking the surface but not too vigorously). Simmer for 30 minutes, stirring down the mixture every 10 minutes (Important that you stir it down regularly and ensure that there is no rice sticking to the bottom of the pan. You will notice that the mixture has probably formed a skin on top. Don't remove it. Just stir it back in.)
Meanwhile, in a medium-sized bowl, use a fork to whisk together the cream, sugar, yolks, vanilla and salt. Set aside on counter while rice is cooking, leaving fork in bowl. Set out a ladle to use, as well. I like to do this after the rice starts cooking, so that the mixture comes to room temperature by the time it's needed.
Once milk/rice has simmered for 30 minutes, continue simmering, but stir down every 5 minutes. With each stir, start testing the done-ness of the rice by tasting a piece. You want the rice to be tender (so no hard center). **Depending on the rice you used, your mixture may start to get thick-ish at this point, with little milky liquid left. If so, add more hot milk or water to the pot, just as much as needed to loosen the mixture up, with each stir. Watch closely and don't let the mixture get dry or it will scorch. Continue cooking, stirring down and adding additional milk, as needed until the rice is tender. Most rice is generally done at about 45-50 minutes of total simmering time. A lot will depend on how vigorously your mixture is boiling, so there is no hard and fast rule. Taste testing is the best indicator.
Once the rice is cooked, slide the pot off the heat to avoid scorching. Re-whisk your egg mixture with your fork. Using the ladle, spoon out a ladle-full of hot rice/milk mixture, taking as much liquid as possible, but not to worry if you bring some of the rice with it. With the ladle in your left hand (assuming your right-handed, if not, reverse) and using your right hand to start whisking the egg mixture with the fork, start adding the hot mixture to the eggs A DROP AT A TIME, at first, while continuously whisking with the fork. Increase to a slow stream, while whisking continuously, until the entire ladle-full has been added. Get another ladle-full of hot liquid and slowly add it to the egg mixture as well, whisking continuously. Keep adding hot liquid until you've got at least 1 1/2 cups-1 3/4 cups of now warmed liquid in your bowl. Once you have reached that point, pour the warmed egg mixture into your cooking pot.
Return the saucepan to heat, over medium-low heat. Cook, stirring almost continuously, just until a dime-sized bubble breaks the surface of the pudding. Pudding should be noticeably thickened and saucy, but still more sauce than rice (pudding will set more in the fridge as it cools). If liquid seems almost like milk consistency (rather than heavy cream consistency), it's too thin. Cook, stirring, a little longer. **Note though that you never want to allow the mixture to vigorously boil after the egg mixture has been added, as you may end up with scrambled eggs.
If using raisins, add to the bottom of a medium-large bowl. When pudding is cooked, immediately pour hot mixture over raisins. Stir well to combine. Allow to stand on counter for about 5 minutes, to allow the steam to reduce, then cover bowl with plastic wrap and place into the refrigerator. Allow to cool and set, at least 6 hours or preferably, over-night. Pudding will set as it cools. To serve, simply stir and spoon into bowls. Serve with a sprinkling of cinnamon, if desired. If pudding is or becomes too thick, simply add a tablespoon or so of heavy cream to mixture and stir in. If you enjoy your rice pudding warmed, you can warm slightly in the microwave or a small saucepan.
Use long grain converted white rice for a classic, old-fashioned rice pudding. Arborio rice also makes lovely rice pudding, though it tends to absorb a bit more liquid, so expect that you will need to add a bit more hot milk or water towards the end of simmering. Jasmine and Basmati are other long grain rice options, if you like. I don't recommend a short-grain or quick-cooking rice here.Be sure to read the Ingredient Notes, FAQ and Cook's Notes above the recipe card for more tips and substitution suggestions for making this recipe. You will also find Step-by-Step Photos to see the process of this pudding being made.