In a large bowl, mix 2 cups of the flour, salt, sugar, and yeast.
Place the butter and milk in a glass measuring cup and warm it in the microwave until it's hotter than lukewarm but not so hot you can't stick your finger in it and keep it there for a second or two. (110 degrees) The butter should melt most of the way.
While stirring, add the milk and butter and then the three egg yolks to the flour mixture. Add the remaining cup of flour until a soft dough forms.
Place the dough on a floured counter and knead for 4 to 6 minutes until it's really smooth and stretchy. Cover it with plastic wrap and let it sit on the counter for about 15 minutes.
After 15 minutes, roll 1/2-inch thick. Using a 3-inch biscuit cutter or the open end of glass, cut out circles. To cut the center circles, I used a marker lid! Medicine caps work pretty well too if your donuts are big.
Place your circles on a pan to rise. Cover them with lightly greased plastic wrap and let them sit in a place that's close to 80 degrees for an hour.
After an hour, heat your oil. You'll need about 2 inches of oil. Use a thermometer if you need to and heat the oil to 350 degrees. If you don't have a thermometer, you can expect your oil to take 8 minutes or more to get hot. I always sacrifice one donut to oil testing. If the oil's too cool, he won't fry. Just dip the edge in--if he sits there, the oil's too cool. If he sits there and starts to fry after a second or two, the oil is still too cool. Just wait another minute or three and try again with the same sacrificed donut. Poor little guy.
When you put him in and he immediately bubbles, throw that donut away and drop in your real ones. Only do three or four at a time. They will fry about 2 minutes on one side, then turn them and fry another one to two minutes on the other. They cook really fast. DON'T WALK AWAY. Turn your heat down to medium after the first batch.