Heat the vegetable oil in a large skillet over medium-high heat. Add the onion slices and cook, stirring occasionally, until golden brown and caramelized, about 7-8 minutes. Remove the onions onto paper towels to absorb some of the oil.
Add a little more oil to the skillet if needed, then fry the bay leaf, cardamom pods and cloves for about 10 seconds. Add the ginger garlic paste and fry for about 30 seconds.
Add the diced tomatoes, chopped coriander and mint, cumin, cinnamon powder, biryani masala, red chili powder, and salt and pepper to taste. Simmer for a few minutes, then add the caramelized onions back in.
Add the marinated prawns and cook for about 3 minutes, until they curl into a "C" shape and are cooked through. Don't overcook them or they'll turn rubbery. Set the prawn gravy aside.
Lightly grease the bottom of a large pot with oil, then layer half the cooked rice. Add all of the prawn gravy, followed by the rest of the rice. For a little color, stir a scoop of rice into the gravy pan and sprinkle it over the top layer.
Cover the pot with a very tight-fitting lid or a tight layer of aluminum foil, then steam on low heat for 15-20 minutes. Let it rest for 15 minutes, then uncover and serve hot.