Wash and rinse the rice with cold water until the water runs clear. Soak the rice in 6 cups of cold water, add 6 tablespoons salt and set aside for a couple of hours.
In a medium-sized saucepan, sauté the onions in oil over medium–high heat until it becomes translucent. Add the meat, garlic, turmeric powder, cinnamon powder, 1 teaspoon salt and black pepper powder and sauté for at least 3–5 minutes until the meat is browned. Add the green beans, tomato paste, chopped tomatoes, rose water, sugar and saffron along with ½ cup of water; mix well, cover and leave to simmer on low heat for about 20–30 minutes.
In a large pot, add 6–8 cups of water and a couple tablespoons of vegetable oil, and bring to a boil. Drain the rice and add to the boiling water and cook for about 7–10 minutes until the rice is parboiled or al-dente. The grain needs to be soft from the outside and firm in the centre. Drain and rinse the rice in cold water.
Wipe clean the large pot, add 3 tablespoons oil and arrange the sliced potatoes in a circular layout at the base and fry on high heat without stirring for 3–5 minutes. On to this, place the rice and meat mixture in alternating layers, building it up into a dome shape and poke 4–5 holes in the rice with the bottom of a wooden spoon.
In a small cup, melt and mix 3 tablespoons of butter with ½ cup boiling hot water and a pinch of saffron, and pour over the rice. Cover the pot and cook on high heat until it begins to steam. Wrap the pot’s lid with a kitchen towel and cook the rice for an additional 30 minutes on low heat.
Spoon the rice on a platter with the crispy potato crust (tahdig) on the side. Serve with mast-o-khiar or Shirazi salad.