Start the kheer base: Pour the full-fat milk into a heavy-bottomed pot. Add the bay leaf and crushed cardamom.
Bring to a gentle simmer over medium heat, stirring often to prevent scorching.
Prepare the rice: Rinse the rice until the water runs clear. Drain well. For an ultra-smooth kheer, lightly crush the rice in a mortar or pulse once in a grinder to break the grains.
Add rice to the milk: Once the milk is simmering, stir in the rice.
Lower the heat to medium-low. Cook for 35–45 minutes, stirring frequently, scraping the sides and bottom so the milk reduces evenly.
Sweeten and flavor: When the milk has thickened and the rice is soft, add sugar to taste. Stir until dissolved.
Add saffron strands soaked in a tablespoon of warm milk (optional) and a small knob of ghee for gloss.
Finish the kheer: Let it simmer another 5–10 minutes until creamy. Remove the bay leaf. The kheer should coat the back of a spoon.
Fold in chopped nuts if using. Set aside to cool slightly; kheer thickens as it rests.
Make the luchi dough: In a bowl, mix flour and a pinch of salt. Rub in 1 tablespoon ghee or oil.
Add warm water little by little and knead into a smooth, medium-firm dough—soft but not sticky. Rest, covered, for 15–20 minutes.
Shape the luchi: Divide dough into small lemon-sized balls. Lightly oil your surface and rolling pin.
Roll each ball into a small disc, about 4–5 inches across. Keep them covered with a cloth so they don’t dry out.
Heat the oil: In a deep pan, heat neutral oil or ghee over medium-high. To test, drop a small piece of dough—it should rise to the surface quickly and sizzle without smoking.
Fry the luchi: Slide in a disc and gently press the top with a slotted spoon until it puffs.
Flip and cook the other side for a few seconds until pale golden. Luchi should stay light, not deeply browned. Drain on paper towels.
Serve: Ladle the warm, creamy kheer into bowls.
Serve freshly fried luchi alongside. Dip, bite, and enjoy the contrast.