Preheat the oven to 175 C. Grease a 9 inch springform tin very well, or line a regular round 9 inch cake tin with non-stick baking paper for easy removal.
To make the cake, in a microwave-safe mixing bowl, melt the butter but don't let it get too hot. Add the oil and brown sugar and use a whisk to combine it all together.
Add the eggs and vanilla, whisk again till the eggs are incorporated, then whisk in the yogurt till smooth.
Sift in the flour, cinnamon, baking soda, baking powder and salt (if using). Fold it all in gently, till no streaks of flour are visible.
Finally, fold in the grated carrots and chopped dates (the batter will loosen up a little) making sure they're evenly dispersed.
Transfer the batter to the prepared tin and smoothen the top. Bake for 45 to 50 minutes until a toothpick poked in the center comes out with just a few moist crumbs, no liquid batter. The cake will have a flat surface (see photos below).
Allow the cake to cool completely at room temperature before frosting.
To make the frosting, beat the butter and cream cheese with a hand mixer on medium speed till soft and creamy, then sift in the icing sugar. Beat on low speed until smooth. Finally, add the cream and vanilla and beat briefly to make a light, fluffy frosting. If you're not using cream and the frosting feels a bit thick, add a spoon of milk to make it a spreadable consistency.
Top the cake with the frosting, spreading it evenly over the top. You can definitely slice it now while it's freshly baked but the super moist texture takes on a fudgy avatar after refrigeration and tastes even better. Just let individual chilled slices sit for about 10 minutes at room temperature to let the frosting soften.
Store the cake in the refrigerator in an airtight tin for 4 to 5 days. It also freezes well. Happy baking!