Preheat the oven to 230°C. Season the whole chicken with salt and pepper. Place it in a cast iron pot and let it brown for 20 minutes. Remove the pot from the oven and place it on the stovetop. Add vegetables, spices, aromatics, and water into the pot. Bring to a boil over high heat. Skim any foam that rises to the top, lower the heat and let it simmer for 1-2 hours, longer for a richer flavour - add more water as the liquid reduces. Once the stock is ready, strain the liquid into a clean container, discard the aromatics and vegetables, and reserve the chicken. Shred the chicken and set it aside.
Clean the freekeh by sifting the grains on a tray with your fingers several times, removing any small stones or rubble. Wash the freekeh several times and soak it in warm water for half an hour before cooking.
Add the butter, olive oil, and onions to a large pot. On medium heat, sauté until the onions turn golden brown.
Drain the freekeh and sauté for a couple of minutes. Add black pepper, turmeric, 7 spice, ground cardamom, and chicken broth. Bring the liquid to a boil on high heat, then reduce the temperature and allow it to simmer for 20 to 30 minutes. Add the shredded chicken and let it simmer for 5 minutes. Adjust the seasoning and add more chicken broth if necessary.