For the marinade, combine 1 1/2 teaspoons chilli powder, 2 teaspoons ginger, 2 teaspoons garlic, 1 teaspoon garum masala powder, 1 cup yoghurt and salt. Mix well, add the chicken pieces and let marinate 1 hour.
Now boil water, add 1/2 of the whole garam masala, bay leaf, and rice. Cook the rice until 3/4 done, drain and keep it aside.
Heat oil in a thick bottomed pan and add remaining whole garam masala. Allow it to crackle, add sliced onions and cook it till light golden brown. Add 1 teaspoon of the remaining garam masala and all the remaining ingredients, including tomatoes, but excluding rice. Cook for 5 minutes, combine marinated chicken with it. Cook until chicken is tender.
Place alternate layers of chicken and rice. Now sprinkle saffron, remaining garam masala powder and butter in between the layers and on the top. Carefully end it with the rice layer topped with saffron and rose water. Cover and seal it with an aluminium foil. Cook it further on low flame for 10-12 minutes. Chicken biryani is ready to serve.