Wash the rice in a mesh sieve under cold running water. Transfer it to a pot, add 3 cups of water, and bring to a boil. Reduce the heat to very low, cover, and cook for 25 minutes. Remove from the heat and set aside.
In a small bowl, combine 1 cup of room-temperature milk with the cornstarch. Whisk well until fully combined, then set aside.
In another pot, heat 6 cups of milk over medium-high heat, whisking constantly, until it comes to a gentle boil. Add the cooked rice and stir well to allow the flavors to infuse.
Bring to a boil, add the sugar, whisk the riz bil haleeb once more, and reduce the heat to very low. Simmer uncovered until the rice starts to float to the top, about 5 minutes.
Add the heavy cream and the zest of 1 lemon, if using. (Zest only the bright outer yellow layer and avoid the bitter white layer underneath.) Stir once more and simmer for an additional 5 minutes over low heat.
Stir in the diluted cornstarch, whisk well, and bring to a boil one last time. Reduce the heat to low and simmer for a further 5 minutes to cook out the starchy taste.
Add the orange blossom water and stir well. Remove the pot from the heat. Our rice pudding, also known as riz bil haleeb, is ready.
To check that the consistency is perfect, dip a metal spoon into the hot rice pudding and pull it out. Run your finger down the back of the spoon. If a clean, clear line remains without the liquid running back together, your riz bil haleeb is ready.
Ladle the rice pudding into ramekins.
Optional step: To achieve the wrinkled surface traditionally associated with riz bil haleeb, ladle the pudding into the ramekins while it is still hot, then give each ramekin a small squirt of water. The uneven temperatures cause the surface to shrink slightly, creating those characteristic wrinkles. Yes, they are an indication to many that your riz bil haleeb is authentic.
Serve warm or straight from the fridge.
You can optionally garnish each ramekin with chopped pistachios before serving.