Make the dough: In a large bowl, whisk flour, yeast, sugar, and salt. Stir in warm milk, melted butter, egg, and vanilla until a shaggy dough forms.
Fold in the grated carrots.
Knead: Turn dough onto a lightly floured surface and knead 5–7 minutes until smooth and slightly tacky. Add a sprinkle of flour only if very sticky.
First rise: Place dough in a lightly oiled bowl, cover, and let rise in a warm spot until doubled, about 60–90 minutes.
Make the filling: In a small bowl, mix softened butter, brown sugar, cinnamon, nutmeg, ginger, and salt into a spreadable paste. Stir in nuts and raisins if using.
Roll out: Punch down dough.
On a floured surface, roll into a 12x16-inch rectangle with the long side facing you.
Fill and roll: Spread the filling evenly, leaving a 1/2-inch border on the far long edge. Roll up tightly from the long side toward the border. Pinch the seam to seal.
Slice: Trim the ends, then slice into 12 even rolls.
A sharp knife or unflavored dental floss makes clean cuts.
Second rise: Arrange rolls in a greased 9x13-inch dish. Cover and let rise until puffy, 30–45 minutes. Meanwhile, preheat oven to 350°F (175°C).
Bake: Bake 22–26 minutes, until lightly golden and the centers spring back when touched.
Do not overbake.
Frost: Beat cream cheese and butter until smooth. Add powdered sugar, vanilla, salt, and enough milk to reach a creamy, spreadable consistency. Spread over warm rolls.