Rinse the rice lightly. Place the rice in a fine-mesh sieve and rinse under cool water for 10–15 seconds. This removes surface starch so the pudding is creamy, not gluey. Drain well.
Warm the dairy. In a heavy-bottomed saucepan, add milk (and cream if using), sugar, salt, and the cinnamon stick. Warm over medium heat until steaming but not boiling, stirring to dissolve the sugar.
Add the rice. Stir in the rice and bring to a gentle simmer. Reduce the heat to low and cook uncovered, stirring often, for 30–40 minutes. Keep the mixture at a low bubble to prevent scorching.
Scrape and stir. As the rice cooks, scrape the bottom of the pot with a wooden spoon to keep it from sticking. The pudding will thicken gradually and the rice will soften.
Add raisins (optional). If using raisins, stir them in during the last 10 minutes so they plump in the hot milk.
Check doneness. When the rice is tender and the mixture is creamy but still a bit loose, remove from heat. It will thicken more as it cools.
Temper the yolks (optional). If using egg yolks for extra richness, whisk them in a small bowl. Slowly drizzle in 1/2 cup of hot pudding while whisking. Pour the yolk mixture back into the pot and cook on very low heat for 1–2 minutes, stirring constantly. Do not boil.
Finish with flavor. Remove the cinnamon stick. Stir in vanilla, nutmeg (if using), and butter for a glossy finish. Taste and adjust sweetness or spice as needed.
Serve warm or chill. Spoon into bowls and dust with a little cinnamon, or transfer to a container. Press parchment onto the surface to prevent a skin if you prefer a smooth top.
Adjust thickness later. If the pudding becomes too thick after chilling, stir in a splash of cold milk until it loosens to your liking.