In a large bowl (I use a Kitchenaid mixer), cream together butter, sugar, egg and vanilla until fluffy.
Combine flour, baking powder and salt and add to the mixture.
Refrigerate the dough for at least 1 hour.
In a small bowl, combine cranberries, walnuts and orange zest.
In a separate small bowl, combine brown sugar and milk.
Roll out the dough on a floured surface into a square.
Spread the brown sugar and milk mixture over the dough.
Sprinkle the cranberry and nut mixture over the dough.
Roll dough tightly (like a swiss roll). Wrap in baking parchment and chill overnight.
Slice roll into 1/4 inch slices and bake at 170 C until edges are light brown.