Put all the ingredients EXCEPT the butter into a large mixer bowl and mix until you all ingredients have combined. About 3 - 4 minutes should be enough.
Add the butter and continue mixing for a longer period of time (about 10 minutes) until the dough is smooth and elastic.
Allow the dough to proof for about half an hour.
Roll the dough with a rolling pin into a 12 x 20 inches rectangle shape (approx. 35 to 55 cm).
Cover the dough with cling film and place in the refrigerator for about an hour.
While the dough is cooling, take the butter cut it into smaller pieces and place on a baking sheet. Covering with another piece of baking sheet and roll with a rolling pin until the butter is a smaller rectangle shape compared to the dough (8 x 12 inches).
Place the butter into the freezer.
Once the butter is frozen, take both the butter and the dough out of the freezer/refrigerator and place on a floured surface. Place the butter in the middle of the dough and fold the dough over the butter but make sure that the sides of the dough don't touch. Place in the freezer for another 30 minutes.
Take out the dough and roll with a rolling pin into a rectangle shape. This time in a separate direction than the previous rectangle shape. Fold the dough to the middle like you did the first time and then in half. Place again in the freezer for another 30 minutes.
Take the dough out again and roll with a rolling pin into another rectangle shape. Now fold in three times like you would a letter.
Cover with cling film and place in the fridge for at least 6 hours.
Take out the dough and roll it into a round circle which is about ¼ of an inch thick. Divide it into 16 triangles.
Roll each triangle from the longer side towards the shorter one to make croissants.
Put each croissant into the waffle machine and bake until golden brown.
Serve with toppings of choice.