Place the cake pan on a burner and turn it on low. Add the butter, sugar, cinnamon, and nutmeg to the pan and melt. Stir while the sugar mixture continues cooking until it turns a dark brown. Stay with it and don't allow it to burn. Remove from heat and allow to cool. The butter and sugar will form a crust as it cools.
Add the cranberries and walnuts (optional), making sure they fill the bottom of the pan. Pour in the orange juice and tilt the pan to evenly distribute it. Set aside.
Preheat the oven to 350° F/175° C.
In the small bowl, sift together the flour, baking powder, baking soda, and salt. Add the orange zest and rub it with your fingers to release the oils into the flour. Set aside.
In the bowl of the stand mixer on medium speed, cream the butter and sugar until the mixture is light and fluffy. Add the eggs, one at a time, mixing and scraping down the bowl after each.
Add the vanilla and sour cream, and mix thoroughly.
Turn the mixture speed to low, and slowly add the flour mixture, mixing for about 10 seconds. Finish folding in the flour with a spatula, taking care to not over mix.
Spoon the batter into the pan and smooth the top. Bake in the preheated oven for 50 to 60 minutes, until the tester comes out clean. Remove from oven and allow cake to cool on a wire rack for 15 minutes. Turn out onto a plate for serving.
In the bowl of the stand mixer with the whisk attachment, whip the cream, sugar, and Grand Marnier until you have stiff peaks. Serve on top of slices of the cake.
If you use a 10-inch pan, you should add ¼ cup of extra cranberries for the topping.