Make sure the chicken is completely clean and dry.
Grind the saffron strands using a pestle and mortar. Sprinkle the ground saffron over 2 cubes of ice and leave it to melt. This will be your bloomed saffron.
To make the marinade, mix the bloomed saffron, olive oil, onion powder, garlic powder, paprika, turmeric, salt, pepper, lemon juice and yogurt in a bowl.
Gently separate the skin on the breast from the meat using your fingers. Spoon half of the marinade under the skin and rub it so it coats the breast. Spread the rest of the marinade all over the chicken on the skin. Leave the chicken to marinate as you're making the filling (about 30 minutes).
Preheat the oven to 400 degrees F.
To make the filling, which is optional, heat the olive oil in a pan. Saute the onion until translucent, then add the garlic and bell pepper. Cook for 5 minutes, then add the turmeric and salt. Add the walnuts, barberries, golden plums and pomegranate molasses. Stir and cook for 5 more minutes. Turn the heat off and let it cool for a few minutes so it's not piping hot anymore.
Spoon the filling into the chicken and make sure not to overstuff it.
Cut about 3 feet of kitchen twin and put the middle part of it under the chicken right under the wings so both ends would be hanging. Bring both ends over the thigh and leg joint and under the legs. Cross the twine ends so the legs close, bring the ends under the legs again and over to tie tightly. Cut the excess twine. Tuck the wings under the chicken so they don't burn while roasting.
Slice the heads of garlic in half so the cloves are showing, cut up the carrots, potatoes and onion into large pieces and place them in a large cast iron skillet or a roasting pan.
Place the chicken on the vegetables and roast for 1 hour 40 minutes to 1 hour 50 minutes. The chicken is done once an instant read thermometer inserted in the thickest part of the chicken thigh shows 165 degrees F and the juices run clear.
Let the chicken rest for 10 minutes before carving to lock up the juices.