Clean, wash and drain the chicken. Add salt, red chili powder, black pepper powder and lemon juice. Mix and marinate for at least 30 minutes or even overnight.
In a cooking pot, add oil, onion paste, cumin seeds, black peppercorns, bay leaves, cloves, green cardamoms and dried chilies. Cook until the onion paste starts to turn golden.
Add ginger and garlic paste and cook until raw smell goes off.
Now add tomato paste. Mix, cover and allow to cook on medium to low flame until the tomatoes are cooked.
Now take yogurt in a bowl and add turmeric powder, coriander powder, paprika powder and fenugreek powder. Mix and add to the tomato gravy. Cover again and cook until the oil separates from the gravy.
Now take the chicken out of the refrigerator and add to the gravy. Mix, cover and cook on low for 15-20 minutes. Let the chicken cook in its own moisture.
When the chicken is well cooked, add red onion cubes and cumin powder. Mix, cover and cook on low for 1-2 minutes to cook the onion a little bit. The crunch should be there though.
Turn the flame off and add garam masala, green chilies and fresh coriander.