Render and sear the duck legs: Place the duck legs skin-side down in a cold frying pan. Turn the heat to medium and let them render slowly for about 8–10 minutes, until golden brown and a good amount of fat has melted. Flip and sear the flesh side for 1–2 minutes, just for colour. Remove the legs and set aside.
Caramelise the onions: In the duck fat, sauté the chopped onions over medium heat with a pinch of salt for 10–15 minutes, until golden and soft.
Build the base: Add garlic and sauté for 1 minute. Stir in turmeric, black pepper, the cinnamon stick, and bay leaves. Add the tomato purée and cook for 2–3 minutes, stirring constantly, until it darkens and smells sweet and slightly smoky.
Add the duck and stew: Return the duck legs to the pot, skin side up. Add the lemon juice. Pour in just enough water or stock to come halfway up the legs. Bring to a gentle simmer, salt to taste, cover, and cook on low heat for 1 to 1.5 hours, until the duck is tender and the sauce has reduced slightly.
Finish the stew: Taste and adjust seasoning. You can add a pinch of sugar or a splash of pomegranate molasses to balance the acidity. Stir in bloomed saffron at the end for richness and aroma (optional).
Make the barberry topping: Soak the barberries in cold water for 10 minutes, then drain well. In a small pan, melt the butter over low heat. Add the barberries and sugar, and sauté gently for 1–2 minutes, just until glossy and slightly puffed.
Serve: Spoon the warm barberries over the duck legs just before serving. Serve with cabbage rice (kalam polo) or classic Persian steamed rice with crispy tahdig.
