Preheat your oven to 350°F (175°C).
Grease and flour three 8-inch (20 cm) round cake pans or line them with parchment paper.
In a large bowl, cream together the granulated sugar and softened butter until light and fluffy.
Beat in the eggs one at a time, ensuring each is fully incorporated before adding the next.
In a separate bowl, sift together the all-purpose flour, cocoa powder, and baking powder.
Gradually add the dry ingredients to the butter mixture, alternating with the milk, beginning and ending with the flour mixture.
Stir in the vanilla extract.
Divide the batter evenly among the prepared cake pans and smooth the tops with a spatula.
Bake in the preheated oven for 20-25 minutes, or until a toothpick inserted into the center comes out clean.
Allow the cakes to cool in the pans for 10 minutes, then transfer them to a wire rack to cool completely.
In a medium bowl, whip the heavy cream until stiff peaks form.
Gently fold in the Nutella or chocolate hazelnut spread until well combined.
Stir in the chopped hazelnuts, if using.
In a heatproof bowl, heat the heavy cream until it begins to simmer.
Pour the hot cream over the chopped dark chocolate and let it sit for 2-3 minutes.
Stir until the chocolate is completely melted and smooth.
Stir in the unsalted butter until glossy.
Place one cake layer on a serving platter and spread a layer of the Nutella filling on top.
Repeat with the remaining cake layers and filling.
Pour the ganache over the top of the cake, allowing it to drip down the sides.
Let the ganache set before slicing the cake.
Enjoy your meal!