Take a pan, put oil and onion, fry onion until it turns golden brown, then take out from the oil. In the same oil, put chicken and ginger garlic paste and fry till chicken turns a light brown colour. Now add fried onion, yoghurt (add saffron and mix well), and fry a bit. Then add all whole and ground spices, except garam masala powder and ginger flakes. Fry a bit, then cover and cook till chicken is done. Now add some water and cook on low heat until the oil separates. Remove from cooker and add garam masala powder and mix well and cover. Serve with ginger flakes.