I begin by melting sugar in a heavy-bottomed saucepan over medium heat until it turns a deep amber color, stirring occasionally so it doesn't burn. Once it's melted, I carefully whisk in the cubed butter until fully combined. Then I slowly pour in the heavy cream, standing back a little because it bubbles up fast, and stir until smooth before removing it from the heat.
After pulling the caramel off the heat, I stir in the salt and vanilla extract right away so the flavors blend in while it's still warm. I then let the caramel sit at room temperature for about 5-10 minutes before transferring it into a clean bowl or jar. This step matters because whipping it too hot will ruin the texture later.
While my caramel cools, I combine warm milk, yeast, sugar, egg, flour, and salt in my stand mixer and mix until it forms a thick, slightly sticky dough. I then add in the softened butter and keep mixing for about 10 minutes until the dough turns smooth, strong, and elastic. This kneading time is what gives the donuts their soft, pillowy texture.
Once my dough is elastic, I place it into a large greased bowl, cover it with a kitchen towel, and let it rise in a warm spot for about an hour, or until doubled in size. I never rush this step because a properly risen dough is what makes these donuts so light.
After the dough has risen, I punch it down gently to release the air, then roll it into a rectangle about half an inch thick on a floured surface. Using a round cutter or jar lid, I cut out even donut rounds and place each one onto a piece of parchment paper so they're easy to transfer later.
I heat my oil to around 350°F and fry the donuts in small batches until they're deeply golden brown and puffy, about 1-2 minutes per side. I make sure not to overcrowd the pot since that drops the oil temperature and makes the donuts greasy instead of fluffy.
As soon as the donuts come out of the oil, I toss them straight into a bowl of granulated sugar while they're still warm so it sticks evenly. Then I set them aside on a cooling rack until they're completely cool to the touch before filling.
Once my caramel sauce has fully cooled, I use an electric hand beater to whip it until it lightens in color and becomes thick and airy, almost like a frosting. This whipped texture is what makes it pipeable and gives the filling that light, melt-in-your-mouth quality.
I spoon the whipped caramel into a piping bag fitted with a round tip, then use the tip of a small knife to poke a hole into the side of each cooled donut. I pipe the caramel generously into each one until I feel a little resistance, which tells me it's nicely filled all the way through.