In a large bowl mix olive oil, cumin, cinnamon, saffron, lemon juice, water, salt and onion. Pour over the chicken. Leave the marinate for at least an hour or overnight in the fridge.
Preheat the oven to 190°C.
Spread the hazelnuts out on an oven tray and roast for 10 minutes until lightly browned. Chop roughly and set aside.
Transfer the chicken and marinade to a roasting tray , put the tray in the oven about 50 minutes.
While the chicken is roasting, mix the honey, rose water and nuts together and nuts together to make a rough paste. Remove the chicken from the oven, spoon generous amount of nut paste on it.
Return to the oven for 5-10 minutes, until the chicken is through and the nuts are golden brown.