Preheat the oven to 350 degrees F. Grease a 9-inch square or 10-inch round cake pan with a little vegetable oil. Line the bottom of the pan with a piece of parchment or waxed paper, cut to fit. In a large mixing bowl, use an electric mixer to mix the oil and sugar. Beat in the eggs, orange zest, and juice. Stir in the flour, baking powder, and salt. Add the chopped walnuts, cinnamon, cloves, nutmeg, ginger, and grated carrot. Mix just until combined (don't overmix, because this will affect how the cake rises).
Spoon the batter into the prepared cake pan. Bake 50 minutes, or until golden. Check doneness by poking a skewer or toothpick into the center of the cake. If it comes out clean, the cake is cooked; if it's still slightly sticky, put it back in the oven for a few more minutes.
Cool the cake in the pan for 10 minutes. Turn it out onto a rack to cool completely before icing.
For the icing, place the sour cream in a mixing bowl. Sift in the powdered sugar and grate in the zest of one orange. Halve the orange and squeeze in the juice from one half. Whisk everything together until glossy. It will be a fairly loose consistency. Spread thinly over the top of the cake. Grate a little more orange zest on top of the cake. Slice the remaining orange and serve on the side.