Cook the rice: Rinse and cook rice in salted water until almost done. Drain and set aside.
Fry onions: Heat oil in a pot. Fry onions until golden and set half aside for garnish.
Brown the meat: Add garlic, ginger, and spices to the remaining onions. Stir in the beef and fry until browned.
Add potatoes and yoghurt: Add potatoes and yoghurt (or tomato), stir well. Add about 1 cup of water and simmer until meat and potatoes are tender (30–40 mins).
Layer the breyani: In the same pot or an oven dish, layer meat and sauce, then rice, then repeat. Top with the reserved fried onions. Sprinkle fresh coriander or mint if using.
Steam: Add a splash of water, cover tightly, and let it steam on low heat for 10–15 minutes (or bake covered in the oven at 180°C for 20 mins).