In a small bowl, mix warm milk with yeast and let it sit for 10 minutes to activate.
In a stand mixer bowl, combine bread flour, sugar, and salt.
To the dry mixture, add eggs, activated yeast, butter, and vanilla extract. Start kneading with the hook attachment on low to medium speed for about 10 minutes, scraping down the sides if needed. Halfway through, add all-purpose flour.
Once the dough is combined and slightly tacky, knead it briefly by hand, then place it in an oiled bowl, cover with plastic wrap, and let it proof for 2 hours until it triples in size.
Heat heavy cream until steaming. Mix with chopped chocolate bars, let sit, then stir until smooth. Add hazelnut extract, butter, and salt, continuing to whisk. Let this mixture cool at room temperature, then refrigerate for 1.5 hours.
After proofing, roll the dough on a floured surface and use a cookie cutter to cut out donuts, placing each on parchment paper.
Heat oil in a frying pan. Test the oil temperature with a small piece of dough. Fry the donuts in batches until golden brown on each side, then transfer to a paper towel-lined plate.
While still warm, coat each donut in sugar.
Once cooled, fill each donut with the chilled hazelnut cream using a piping bag.
Enjoy your freshly made Italian Donuts with Hazelnut Filling!