Mix yoghurt, garlic, ginger, garam masala, turmeric and salt together in a bowl. Add chicken breast; toss to coat evenly. Cover bowl and marinate chicken in the fridge, at least 1 hour.
Place rice in a bowl and add enough water to cover; set aside to soften. Place saffron threads in a small bowl with 60ml water; set aside to bloom.
Preheat oven to 200 C / Gas 6. Coat a baking dish with 2 tablespoons olive oil.
Arrange onions in the prepared baking dish in a single layer. Top onions with marinated chicken breast, reserving marinade. Add 120ml water to the reserved marinade; pour marinade mixture over chicken. Top with tomato slices.
Bake in the preheated oven until chicken breasts are cooked through and the juices run clear, 30 to 35 minutes.
Bring 1.4L water to the boil in a large pot with cloves, cardamom, cinnamon and cumin. Drain rice and add to the pot. Bring to the boil and cook until softened but still firm, about 8 minutes.
Heat remaining 2 tablespoons oil in a pan over medium heat. Add masala curry sauce; cook and stir until fragrant, about 1 minute. Add parboiled rice and stir to combine, about 1 minute more. Stir in saffron-infused water and 175ml water. Cover, reduce heat to low, and simmer until liquid is absorbed, 5 to 8 minutes. Remove from heat and let stand until rice is fluffy, 5 to 10 minutes.
Spoon rice onto serving platter; top with chicken, onion and tomatoes.