Preheat the oven to 180C/350F/gas mark 4. Grease a 23x33cm/9x13in rectangular cake tin and line with a strip of baking parchment.
Sift together the flour, baking powder, bicarbonate of soda, salt, cinnamon, ginger, cloves and nutmeg then stir in the sugars.
Whisk together the eggs, sunflower oil, vanilla extract and orange zest; pour the mixture into the dry ingredients and whisk gently until smooth. Fold in the grated carrot, crushed pineapple and pistachios.
Pour into the prepared tin and smooth the surface. Bake for 40-50 minutes until a skewer inserted into the centre comes out clean. Remove from the oven and leave to cool in the tin.
Once the cake is cool remove from the tin and peel off the baking parchment. Place the butter and sifted icing sugar in a bowl and beat together until creamy. Add half of the cream cheese and whisk until smooth then whisk in the other half. Be careful not too over-whisk otherwise the icing can go runny.
Spread the icing over the top of the cake and sprinkle with chopped pistachios. Refrigerate the cake for about an hour before serving to help the frosting set. Store any leftovers in an airtight container in a cool place for up to five days.