Combine the yeast, warm milk, vanilla extract, ¼ teaspoon cinnamon, ⅛ teaspoon ginger, ⅛ teaspoon nutmeg and sugar in the bowl of a stand mixer fitted with the hook attachment. Allow to sit for 2-5 minutes for the yeast to dissolve.
Add in 2 cups of the flour and mix to combine. Now add in the salt, egg, shredded carrots and raisins. Mix well.
Begin gradually adding in the remaining flour, adding one cup at a time, until the dough begins to pull away from the sides of the bowl. Then, slowly mix in the softened butter, one tablespoon at a time.
Continue to knead the dough until it is well-developed and can pass the windowpane test. This will take 8-10 minutes. Once done, cover the dough and let it proof until it has doubled in size.
While the dough is proofing make the cinnamon sugar butter. Mix together the softened butter, brown sugar and cinnamon. Set aside.
Once the dough is ready to be shaped, line a 9x13 baking dish with parchment paper and preheat the oven to 350°F.
On a lightly floured surface, roll out the dough into a 10×15-inch rectangle. Evenly spread the cinnamon sugar butter over the dough. Then sprinkle ½ cup of the chopped walnuts over the butter mixture.
Begin with the long end and roll the dough into a log. Slice into 12 equal-sized rolls and arrange them in the prepared dish. Cover and allow to proof for 30 minutes, or until they become puffy. Once they're ready, bake for 30 minutes.
Prepare the cream cheese frosting while the cinnamon rolls are baking. Add the softened cream cheese and softened butter to a mixing bowl and beat until smooth. Gradually add in the powdered sugar and continue beating until smooth and fluffy. Mix in the vanilla extract.
Allow the cinnamon rolls to cool for 5 minutes after they come out of the oven. Then spread the cream cheese frosting over the cinnamon rolls. Top with remaining ¼ cup chopped walnuts. Enjoy!