Khoresht-e Gol Kalam ba Seer (خورشت گل کلم با سیر) — Persian Cauliflower & Garlic Meatball Stew
A Persian stew of tender cauliflower and juicy meatballs in a tangy tomato base scented with saffron and plenty of garlic. Finished with lemon juice and served over rice, it balances warmth, brightness, and comfort.

Printable Recipe Card
Servings: 4 · Total: 110 min · Difficulty: medium
Ingredients (quick list)
- 0.25 tsp Saffron threads (ground and brewed in hot water)
- 3 tbsp Hot water (for blooming saffron)
- 200 g Yellow onion (finely diced)
- 45 ml Cooking oil (neutral oil such as sunflower or canola, divided)
- 60 g Fried onions (piaz dagh) (store-bought or homemade, not sweetened)
- 30 g Fresh garlic (about 8–10 cloves, finely grated or minced, divided)
- 45 g Tomato paste (about 3 tbsp)
- 600 ml Water (hot, plus more as needed)
- 8 g Fine sea salt (about 1 1/4 tsp, divided)
- 1 tsp Black pepper (freshly ground, divided)
- 350 g Ground beef (15–20% fat preferred for juicy meatballs)
- 12 g Chickpea flour (about 1 tbsp, helps bind without breadcrumbs)
+ 2 more in the full ingredients section below.
Steps (summary)
- Brew the saffron: grind 1/4 tsp saffron threads to a powder, then stir with 3 tbsp hot water (not boiling). Cover and steep 10–…
- Make the meatball mixture: in a bowl combine ground beef, grated-and-squeezed onion, 2 grated garlic cloves (6 g), chickpea flo…
- Shape meatballs: lightly oil your hands and form 16 meatballs (about 30–35 g each). Keep them on a plate in a single layer. Thi…
- Build the stew base: heat 30 ml oil in a heavy pot over medium heat. Add diced onion (200 g) and sauté 10–12 minutes until gold…
- Toast the tomato paste: add tomato paste and cook 3–4 minutes, stirring constantly, until it darkens slightly and smells sweet…
- Cook meatballs in the sauce: reduce heat to low so the stew barely simmers. Slide meatballs in one by one, spacing them out. Do…
+ 2 more steps in the full instructions section below.
Cultural Background
Persian stews are often built around slow-simmered sauces balanced with acidity and aromatics, served alongside rice for a complete meal. Cauliflower-based stews appear in home cooking where seasonal vegetables and pantry staples like tomato paste, fried onions, and saffron create depth with modest ingredients.
Equipment
💡 Tips
- Squeezing moisture from the grated onion is key; excess liquid makes meatballs crack in the simmering sauce.
- Keep the stew at a gentle simmer—rapid boiling can break meatballs and overcook cauliflower.
- To control garlic intensity, add half the garlic early and stir the remaining half in during the last 5 minutes for a fresher bite.
- If the sauce tastes sharp from tomato paste, simmer uncovered 5–10 minutes longer to mellow and concentrate it.
⚠️ Common Mistakes
❌ Boiling the stew vigorously after adding meatballs
💡 Why: Aggressive bubbling can break meatballs and roughen the sauce, making it greasy and cloudy
✅ Fix: Keep heat low for a gentle simmer; if it starts boiling, partially cover and reduce heat immediately
❌ Skipping the tomato paste toasting step
💡 Why: Untoasted paste can taste raw and overly acidic, dulling the saffron and garlic
✅ Fix: Cook paste in oil 3–4 minutes until it darkens slightly and smells sweet, then add water
❌ Overcooking cauliflower directly in the stew from raw
💡 Why: Raw florets can shed water and turn mushy, breaking apart and thickening the sauce unevenly
✅ Fix: Sear cauliflower first, then simmer only until just tender (about 20–25 minutes)
❌ Not squeezing grated onion for meatballs
💡 Why: Excess onion juice weakens binding and causes cracking during simmering
✅ Fix: Squeeze grated onion very well; if still loose, add 1–2 tsp more chickpea flour and knead again
🧊 How to Store
Cool completely, then refrigerate in an airtight container up to 3 days. Reheat gently on low with 60–120 ml water to loosen the sauce; avoid hard boiling. Freeze up to 2 months; thaw overnight in the fridge and reheat slowly to keep cauliflower from breaking.
📅 Make Ahead
You can form meatballs up to 24 hours ahead and refrigerate covered. The stew base (onion, fried onions, garlic, toasted tomato paste, water, saffron) can be made 2 days ahead; reheat to a simmer before adding meatballs. The finished stew tastes even better after resting overnight.
🍽️ Pairs Well With
- Persian steamed rice
- Torshi (mixed pickles)
- Fresh herbs and radishes
- Plain yogurt (optional)
Regional Variations
- Tehran-style home cookingOften leans more tangy, with a slightly higher ratio of tomato paste and a brighter lemon finish; meatballs may be smaller to distribute evenly through the stew.
- Northern Iran-inspiredMay include more garlic and a sharper sour note; some cooks keep the sauce thinner and serve it generously over rice with herbs on the side.
Ingredients
- 0.25 tspSaffron threads (ground and brewed in hot water)
- 3 tbspHot water (for blooming saffron)
- 200 gYellow onion (finely diced)
- 45 mlCooking oil (neutral oil such as sunflower or canola, divided)
- 60 gFried onions (piaz dagh) (store-bought or homemade, not sweetened)
- 30 gFresh garlic (about 8–10 cloves, finely grated or minced, divided)
- 45 gTomato paste (about 3 tbsp)
- 600 mlWater (hot, plus more as needed)
- 8 gFine sea salt (about 1 1/4 tsp, divided)
- 1 tspBlack pepper (freshly ground, divided)
- 350 gGround beef (15–20% fat preferred for juicy meatballs)
- 12 gChickpea flour (about 1 tbsp, helps bind without breadcrumbs)
- 650 gCauliflower (1 medium head, cut into 4 cm florets)
- 30 mlLemon juice (fresh, about 2 tbsp)
🔄 Substitutions
- Ground beef→ Ground lamb or a 50/50 beef-lamb mix
- Chickpea flour→ All-purpose flour
- Fresh lemon juice→ Lime juice
Instructions
- 1
Brew the saffron: grind 1/4 tsp saffron threads to a powder, then stir with 3 tbsp hot water (not boiling). Cover and steep 10–15 minutes until deeply colored. Meanwhile, cut cauliflower into even 4 cm florets so they cook uniformly and stay intact in the stew.
- 2
Make the meatball mixture: in a bowl combine ground beef, grated-and-squeezed onion, 2 grated garlic cloves (6 g), chickpea flour, 1/2 tsp salt (3 g), and 1/2 tsp black pepper. Knead firmly for 2–3 minutes until tacky and cohesive, then rest 10 minutes at room temperature for better binding.
- 3
Shape meatballs: lightly oil your hands and form 16 meatballs (about 30–35 g each). Keep them on a plate in a single layer. This size cooks through gently without drying out and fits well among the cauliflower florets. If your kitchen is warm, chill the plate 10 minutes to help them hold shape.
- 4
Build the stew base: heat 30 ml oil in a heavy pot over medium heat. Add diced onion (200 g) and sauté 10–12 minutes until golden. Stir in fried onions (piaz dagh) and cook 1 minute. Add the minced garlic (remaining 30 g minus the 6 g used) and cook 45–60 seconds until fragrant, not browned.
- 5
Toast the tomato paste: add tomato paste and cook 3–4 minutes, stirring constantly, until it darkens slightly and smells sweet rather than raw. Pour in 600 ml hot water, scraping the bottom. Stir in brewed saffron, remaining salt (5 g), and remaining black pepper (1/2 tsp). Bring to a gentle boil.
- 6
Cook meatballs in the sauce: reduce heat to low so the stew barely simmers. Slide meatballs in one by one, spacing them out. Do not stir for the first 8 minutes; instead, gently shake the pot to prevent sticking. Simmer covered 20 minutes, then uncover and simmer 10 minutes to slightly thicken.
- 7
Prepare the cauliflower: while meatballs simmer, heat the remaining 15 ml oil in a wide skillet over medium-high heat. Add cauliflower florets in a single layer (work in batches if needed) and sear 6–8 minutes total, turning occasionally, until lightly golden on edges. This step helps cauliflower keep its shape in the stew.
- 8
Finish the stew: gently nestle seared cauliflower into the pot. Cover and simmer on low 20–25 minutes until cauliflower is tender but not mushy and meatballs are cooked through (center should reach 71°C/160°F). Stir in lemon juice, simmer 2 minutes, then rest off heat 10 minutes for flavors to round out.
🪪 Recipe Passport
Cultural Background
Persian stews are often built around slow-simmered sauces balanced with acidity and aromatics, served alongside rice for a complete meal. Cauliflower-based stews appear in home cooking where seasonal vegetables and pantry staples like tomato paste, fried onions, and saffron create depth with modest ingredients.
Regional Variations
Researched from multiple sources and validated by the Zaffaron editorial team. Every recipe is tested for accuracy, measurements, and cultural authenticity.
Nutrition per serving
Pairs well with
If you enjoyed this recipe, here are a few related Zaffaron recipes to try next.
- Khoresht Loobia va Havij (خورش لوبیا و هویج) — Persian Green Bean & Carrot Stew
- Khoresht-e Torsheh Somagh (خورش ترشه سماق) | Northern Gilaki Sumac Chicken Stew
- Kokooye Khanom Jaan (کوکوی خانمجان) — Persian Herb and Meat Frittata
- Khoresht-e Havij va Karafs (خورشت هویج و کرفس) — Persian Chicken, Carrot & Celery Stew
Does your family make this differently?
Every family has their own version. Maybe your grandmother adds a secret ingredient, or your aunt has a completely different technique. Preserve your family's version — with their name on it, forever.
You Might Also Like

Saffron Sweet Rice (پلو شیرینی زعفرانی) — Festive Persian milk-saffron rice with nuts
Persian · Rice Dishes · 75 min

Ash-e Sak (آش ساک) — Gorgani Spinach and Lamb Ash
Persian · Soups · 175 min

Ash-e Torsh (آش ترش) — Sour Herb and Legume Soup
Persian · Soups · 145 min

Icelandic Fish Stew (Plokkfiskur) — Creamy Cod and Potato Mash
Icelandic · Stews · 55 min

Matoke (Matoke) — Tanzanian Green Banana and Beef Stew
Tanzanian · Stews · 135 min

Cig Kofte (Çiğ Köfte) — Isot-kissed bulgur kneaded and served in lettuce
Turkish · Appetizers · 25 min

Mıhlama (Mıhlama) — Black Sea Cornmeal and Cheese Skillet
Turkish · Main Courses · 25 min

Shakarob (Шакароб) — Tajik Tomato-Onion Bread Salad
Tajik · Salads · 25 min
Reviews
Cooked this recipe?
Tap the stars to rate it — that's all it takes. A few words are welcome but optional.
No ratings yet. Cooked this one? Be the first to rate it — it takes one tap.