Rinse the rice several times in cold water until the water runs clear. Add fresh water and leave the rice to soak for at least half an hour.
Preheat oven to 325.
Heat 2 tablespoons of oil in a large pan and add the onions; stir and cook until brown. Remove the onions and set them aside.
Add ground beef to the hot oil. Brown the meat. Add one cup of water and salt and pepper to taste. Bring to a boil, then lower the heat, cover and simmer until the meat is tender. After the meat is cooked, remove it from the broth and set it on a plate.
Grind the onions to a pulp and add them to the meat broth.
Wash and peel the carrots and cut into pieces the size of matchsticks. Heat 2 tablespoons of the oil in a small pan and add the carrots. Cook gently until the carrots are lightly browned and tender (adding a little water, which will evaporate during cooking). Add the raisins and cook gently until they begin to swell. Remove the raisins and carrots from oil.
Bring 5 cups of water to a boil in a pot and add 1 teaspoon of salt. Add the rinsed rice to the boiling water. Parboil for 2 to 3 minutes, then drain in a large sieve.
Pour the rice into a large casserole and sprinkle with garam masala and saffron.
Measure ¾ cup of the reserved meat juices and pour over the rice, stirring once. Place the cooked meat on one side of the pan and the carrots and raisins on the other adding the reserved oil cook for 25 minutes in the preheated oven.
To serve, remove the carrots and raisins and set aside. Place the rice on a serving platter. Top the rice with the meat, then garnish with the carrots and raisins.