In the bowl of a stand mixer fitted with a dough hook, combine the flour, yeast, and soft butter.
Begin kneading on low speed to mix the ingredients thoroughly.
Gradually add the caster sugar, salt, eggs, and warm milk to the flour mixture.
Continue kneading for 10 to 15 minutes. The dough should become smooth, elastic, and start pulling away from the sides of the bowl. If the dough feels too sticky, add a little more flour (1 tablespoon at a time).
Remove the dough from the bowl and shape it into a ball. Place it in a clean, lightly greased bowl.
Cover the bowl with a clean kitchen towel or plastic wrap to prevent drying.
Allow the dough to rise for 1 hour in a warm, draft-free spot until it doubles in size.
Punch the dough gently to release air and deflate it.
Transfer the dough to a clean, lightly floured work surface and Roll it out into a rectangle approximately ½ inch thick.
Use a 4-inch round cookie cutter to cut out discs from the dough.
Place the cut dough discs onto a tray lined with lightly floured parchment paper.
Cover the dough discs with a clean cloth to prevent drying out.
Allow the discs to rise again for 40 minutes. They will puff up slightly during this time.
Heat a large, deep frying pan with neutral-flavored oil (e.g., vegetable or sunflower oil) to approximately 170°C (340°F). Use a thermometer to maintain consistent heat.
Carefully lower a few doughnuts into the hot oil at a time, making sure not to overcrowd the pan.
Fry for 1–2 minutes on each side, or until they are golden brown. Use tongs or a slotted spoon to flip them gently.
Once cooked, transfer the doughnuts to a plate lined with paper towels to drain excess oil.
Once the doughnuts are cool enough to handle, use a piping bag fitted with a narrow tip to fill each one with your favorite jam. Insert the tip into the side or bottom of the doughnut and squeeze gently until the jam fills the center.
Dust the doughnuts generously with icing sugar for a sweet finishing touch.