Wash the rice and leave in cold water with salt around 4 or 5 hours before starting to cook.
In a large non-stick pot over high heat, brown the ground beef with onion and green beans. Cook until tender, adding some water if necessary. Add the tomato sauce, salt and pepper and leave it to cook for 30 minutes or until the liquid is absorbed.
In a separate pot, boil the water, pour the rice and cook for 10 minutes. Be careful not to overcook the rice at this point or the dish will be mushy; the rice should be firm. Remove the rice from water.
Heat oil in the bottom of the pot over medium heat (make sure it is a non-stick pot). Start to pour 1 layer rice, 1 layer meat mixture ito the pot and some safran for each layer. Add the butter on the top. Wrap a clean dish towel around the inside of the pot's lid (the ends of the dish towel will be folded over the edges on top of the lid) and put the lid on the pot.
Cook for 30 minutes, without uncovering.
Remove lid and place a tray on top of the pot, then carefully flip it over. The rice will hold the shape of pot with a nice crust on top called 'tah digh.'