In a bowl of a stand mixer, place the flour, yeast, sugar and salt and mix on low using the paddle attachment.
Add the eggs and 2/3 cup of water and mix until a shaggy mass forms. If you notice dry flour at the bottom of the bowl, add 1 tsp of water and mix for about 10 seconds and check again. Keep adding 1 teaspoon at a time until the dough is hydrated.
Replace the paddle attachment with the dough hook and knead on medium for 4 minutes.
Add the butter, 2 pieces at a time allowing the butter to mostly incorporated before adding more.
Increase speed to medium-high and knead until the dough is separating from the sides and bottom of the bowl and when you gently press it, it does not tear.
Place the dough in an oiled large bowl, cover with plastic wrap and place in the refrigerator for a min. of 8 hours or overnight.
Cut twelve 4x4-inch parchment paper squares and have a large baking sheet ready.
Remove the dough from the refrigerator, transfer to a lightly floured surface, and roll it to 1-inch thick.
Use a 2-inch cookie cutter to cut the dough, and place each circle on a parchment paper square over the pan.
Cover with plastic wrap, place it in a warm spot and rest until doubles in size.
In a deep and wide pan, bring oil to 360F (182C) then gently drop the donuts into the oil with the parchment paper facing up. Do not overcrowd the pan.
Fry for 90 seconds on each side then remove from the hot oil and place over a paper towel to soak oil residues. Let cool for about 5 minutes.
Coat each donut with sugar, let cool for about 10 minutes then fill with the bavarian cream.