Soak the lentils in plenty of cold water overnight. The next day, rinse and drain well. Place in a large pot and cover with cold water. Bring to a hard boil for 5-10 minutes, skimming if needed. Reduce the heat and simmer, stirring occasionally, until lentils are very soft but still hold their shape, about 40 minutes to 1 hour. If needed, top the pot up with water. Drain and set aside.
Preheat the oven to 325°F.
In a dry pan, lightly toast the cloves, star anise, coriander, cumin, cayenne, fennel, garam masala, and cardamom, stirring constantly until fragrant, about 30 – 45 seconds. Remove from heat and grind in a spice grinder or crush with a mortar and pestle and set aside.
In a oven safe heavy bottom pot, heat the butter and oil over medium heat. Add the onion and cook until soft, 5-8 minutes. Add the ginger and garlic and cook, stirring, for 1-2 minutes. Stir in the spices, cinnamon stick, and bay leaf.
Stir in the tomato paste and add up to 1 cup of water to bring the whole thing to a thick, soup-like consistency. Add the lentils back in, adding a bit of water, if needed.
Tightly cover with foil or an oven safe lid and cook for 3-4 hours checking every 30 minutes or so, adding water if needed to maintain a soup like texture. If you’re committed and want to cook your dal for 24 hours, turn the oven to 200°F overnight and then up the temperature to 300°F when you get up in the morning. Give it a good stir and let it cook, at 300°F until you hit 24 hours.
Remove from the oven and stir in the cream and butter. Taste and season with salt. Enjoy with rice or naan!