Preheat the oven to 350 F = 180 C
Prepare a 9" x 5" x 3" = 23 x 13 x 8 cm loaf pan: butter and flour then line with wax paper.
Mix baking powder with vinegar and set aside.
Mix orange zest with flour and set aside.
Whisk the egg and set aside.
Mix the butter with a hand mixer on medium speed for 2 minutes, then on high until it’s creamy, slowly add icing sugar and continue beating until it’s creamy. Don't replace the icing sugar for regular sugar or you'll have troubles getting the butter to fluff.
Add heavy cream and beat on medium speed.
Turn mixer on low speed and gradually add dry ingredients, baking powder mix then the eggs.
Mix until completely smooth.
Toss chocolate pieces in flour until they're covered evenly.
Toss cranberries with a handful flour to cover them completely. This is another reason fresh cranberries are recommended. If you use thawed cranberries, make sure you strain them well.
Add the chocolate bits into the batter and stir well, then add cranberries and stir gently. Use the tail of a spoon.
Pour the batter into the prepared loaf pan, smooth the top to spread evenly and gently tap the pan on a working surface to remove air bubbles.
Bake until the top of the cake is golden brown and a toothpick inserted comes out clean (about 50-60 minutes). Do not open the oven for the first 15 minutes!
Cool the cake in the pan for 15 minutes, then remove from the pan and cool on a rack.
Meanwhile prepare the glaze. Use a hand mixer and beat the softened butter on medium speed for 2 minutes then on high speed until fluffy. Then add cream cheese and mix until smooth. Slowly add in powdered sugar and beat until smooth, mix in vanilla extract.
Spread on top of the cake and sprinkle dry cranberries and chocolate flakes.
Place the cake in the fridge until the frosting is set.