1. Preheat the oven to 190ºC/375ºF/gas 5. Grease a springform cake tin (roughly 20cm) with butter, line the base with greaseproof paper, then dust the sides with gluten-free flour.
2. Lightly beat the eggs in a large bowl, add the sugar and oil, then mix to combine. Sieve in the flour and spices, then fold through. Peel and grate the apple (core and all) and carrots, then stir into the mixture along with the orange zest and juice and sultanas. Roughly chop and add the walnuts, if using.
3. Pour the mixture into the prepared cake tin, then place on the middle shelf of the oven for 30 to 35 minutes, or until golden and an inserted skewer comes out clean. Leave the cake to cool in the tin for around 5 minutes, before turning it out onto a wire cooling rack to cool completely.
4. Meanwhile, make the icing. Beat the butter, icing sugar and most of the orange zest until pale and smooth, then stir in the cream cheese until just combined.
5. Once cooled, decorate the cake with the icing. Lightly crush the walnuts in a pestle and mortar and sprinkle on top. Finish with a grating of orange zest, then serve.