Heat a large pot over medium heat and add the oil. Add the garlic and fry until light golden brown. Remove the pot from the heat and remove the garlic with a slotted spoon and let dry on a paper towel.
Grate the remaining garlic and ginger on a grater or crush into a paste with mortar and pestle.
Using a hand blender, blend the tomatoes until smooth.
Return the pot with the oil to a medium heat and add the bay leaves, green cardamom, black cardamom and cinnamon. Let it crackle for a minute or two while stirring.
Turn down the heat and add the garlic and ginger paste. Cook for about 5 minutes, allowing the paste to brown but not burn.
Add the tomatoes, salt and deggi mirch. Simmer and reduce by half, stirring frequently to prevent burning. This will take about 30 minutes.
Add the butter and simmer for about 5 minutes.
Add garam masala, sugar, honey, cumin, the fried garlic, fenugreek and dill and simmer for another 15 minutes.
If you are going to use the sauce right away, add the cream and simmer for about 5 minutes. Otherwise, let the sauce cool and refrigerate it. Then add the cream when you heat the sauce to assemble your dish.