Combine the water, instant yeast, and sugar in a mixing bowl. Stir to dissolve (see Note 1 if using active dry yeast).
Add the bread flour, powdered milk, and salt. Use a stand mixer fitted with a dough hook.
Starting on Speed 2 or the “Stir” setting for 2 minutes to combine the ingredients (see Note 2). Increase the speed to 4 for another 2 minutes to further develop the dough.
Add the room-temperature butter and oil to the dough.
Continue kneading at Speed 4 for 4 minutes until the butter is fully incorporated and the dough is smooth and elastic. If the dough is too sticky, add more flour gradually (see Note 3).
Transfer the dough to a lightly oiled bowl, cover it with a damp cloth or plastic wrap, and let it rise in a warm, area until it has doubled in size. The rising time will vary based on the temperature of your environment (see Note 4).
Once the dough has doubled, gently punch it down to release excess air.
Shape the dough as desired and place it into a greased loaf pan.
Cover and let the dough rise again until it has nearly doubled in size. This second rise is crucial for improving texture and crumb (see Note 5).
Preheat your oven to 350°F (175°C)
Place the risen dough in the preheated oven and bake for 30 minutes, or until the bread is golden brown. If the bread becomes too brown, cover it with foil.
Allow the bread to cool completely on a wire rack before bagging.
