Step 1 Combine the rice and the water in a heavy, wide medium saucepan and bring to a boil. Cover and cook over medium-low heat for 5 minutes, stirring often. Uncover and cook over medium heat, stirring occasionally, or until nearly all of water has evaporated and rice is about half cooked, about 10 minutes.
Step 2 Add 3 1/2 cups milk and the salt, and bring to a boil over medium-high heat, stirring often. Reduce the heat to medium low and cook, uncovered, stirring and scraping the bottom and sides of the pan often, until the rice is very soft, about 20 minutes; during the last 5 minutes, stir frequently.
Step 3Add the remaining one-half cup milk and bring to a simmer, stirring frequently. Stir in the almonds and cardamom and cook over low heat, stirring very often, until the pudding is thickened to your taste, about 5 minutes. The pudding should look creamy, not soupy and not dry.
Step 4When the rice is cooked, add 4 tablespoons sugar, or to taste, and cook for 1 minute, stirring. Remove from heat and stir in the rosewater. Taste, and add more cardamom or rosewater if you like.
Step 5Serve the pudding hot or cold, garnished with toasted sliced almonds and dried cranberries.
Step 6To serve the pudding cold, cool it to room temperature, cover and refrigerate. The pudding thickens as it cools. When you are ready to serve it, stir in more milk by spoonfuls to bring the pudding to the consistency you prefer.