Beat the butter and sugar in a mixing bowl until soft and creamy.
Beat in the egg and vanilla.
Stir in the flour, baking powder and salt and mix to a soft dough.
Form into a ball, wrap in cling film and chill for 1 hour.
For the filling
Mash the cranberries in a bowl and stir in the almonds, orange zest, cinnamon and brown sugar.
Roll out the dough on a lightly floured surface to a 25cm|10" square.
Spread with the cranberry mixture, leaving a 2cm|1/2" margin around the edges.
Roll up tightly, like a Swiss roll. Wrap in cling film and chill for at least 3 hours or overnight.
Heat the oven to 190°C (170° fan) gas 5.
Line a large baking tray with non-stick baking paper.
Cut the roll into 6mm|1/4" slices and place on the baking tray.
Bake for about 15 minutes, until lightly browned.
Cool on the baking trays for a few minutes, then place on a wire rack to cool completely.