Toss the nuts in the oil in a small frying pan over a medium heat. As soon as they are beginning to colour, add the sultanas and toss again. When the nuts are golden brown, remove all with a slotted spoon and place immediately on to paper towels to drain and prevent further cooking. Add the butter to the drained oil. As soon as it is melted and begins to foam add the semolina. Turn down the heat to medium low. With a wooden spoon or flat spatula, stir continuously to toast the semolina for 8-10min until lightly coloured, making sure you loosen it from the corners of the pan where it can stick and burn.
Add the sugar and continue cooking for a further 4min. (You may or may not need more sugar, though I personally do not like it very sweet.) Remove from the heat to cool slightly for a few seconds. If adding saffron you must first roast the saffron gently in a small pan over a low heat shaking the pan about to distribute the heat evenly. When the saffron strands are crisp, they are ready. Tip the saffron into the semolina, if using, then add 750ml milk all at once and stir a bit faster now so that no lumps are formed, or whisk it in. Return to the heat and cook, stirring gently, for 10-12min until the semolina is thick and cooked. If the mixture is becoming too thick add more milk as desired to make a thick pouring porridge (it will thicken more on cooling so best not to be too thick when hot).
When cooked and the desired consistency, add all the remaining ingredients except the fried nuts, sultanas and rose petals. Cook for a minute or two and check the flavouring. If more milk has been added the flavourings and sugar may need to be increased to suit your taste. Transfer the mixture to a serving bowl or dish and sprinkle with the fried garnish. Serve warm (leftovers are great cold the following day), garnished with a few rose petals if you like.