Heat the oil in a large pot over medium heat. Add the diced onions and fry for 2 minutes, stirring occasionally, until starting to soften. Add the bay leaves, carnations, whole cardamom pods, and cinnamon sticks. Reduce heat to low and simmer for 40 minutes, stirring every 5 minutes. Remove and discard the whole spices.
Add the cumin, turmeric, chili powder, ginger, garlic, salt to taste, and a pinch of saffron. Add the peeled tomatoes. Increase heat to medium and bring to a boil. Remove from heat and let cool for 5 minutes. Working in batches if needed, transfer to a blender and blend until smooth. Pour into clean jars, let cool completely, then cover and refrigerate.