In a large saucepan, combine the milk, water, and sugar. Heat over medium heat until the sugar is completely dissolved.
Gradually add the semolina to the saucepan, stirring continuously to avoid lumps.
Continue to cook the mixture over low heat, stirring frequently, until it thickens and starts to pull away from the sides of the pan (about 10-15 minutes).
Stir in the melted butter, ground cinnamon, nutmeg, cardamom (if using), and rose water or orange blossom water (if using).
Fold in the chopped almonds or walnuts and raisins, if using.
Transfer the mixture to a serving dish or mold. Smooth the top with a spatula.
Allow the mafruka to cool and set at room temperature.
Cut into squares or slices before serving. Mafruka can be enjoyed warm or at room temperature.
Enjoy your meal!