Mix in the ingredients for the marinate (except the ghee) into a bowl and pour over the chicken. Rub it into the chicken really well. Get some marinate between the skin and breat part by gently separating it and pouring the marinade into it. Cover and let it rest for 24 hours in the fridge (if you are short on time, give it at least 3 hours).
Take the chicken out of the fridge 1 hour prior to when you start baking it.
Preheat the oven on 180℃ (350℉). Place the chicken on a wired rack on top of a tray so the tray catches the juice. Brush the ghee all over the chicken. Save the leftover marinade to make Persian jeweled rice (recipe coming next). Change the position of the chicken every 20 minutes (if the legs were facing the back of the oven first, flip so that the neck is facing the back now). Baste the chicken with the fat and juices that has accumulated into the tray underneath. Next 20 minutes, flip it upside down so it cooks evenly on all sides.
You have to cook the chicken for 80-90 minutes in total. Check if it is done by transfering it on a white (or light colored) dish and observing the liquid that it releases. If the juice that runs out of the chicken is pinkish, the chicken is not done yet and needs further cooking. If the chicken starts to look too brown before it is completely done, cover it with a foil and continue cooking.
Once done, leave it to rest for about 10 minutes before cutting.