Preheat oven to 350 degrees Fahrenheit and line 2 baking sheets with parchment paper or silicone baking mats.
In an electric mixer fitted with the paddle attachment, beat butter and sugars on medium speed until light and fluffy. Add eggs and vanilla, and beat on medium speed until combined well.
In a separate bowl, sift together the flour, baking soda, baking powder, salt, cinnamon, nutmeg, and ginger; stir to combine. Gradually add the flour mixture to the butter mixture on low speed, until just blended. Mix in the oats, carrots and raisins.
With a #50 scoop (about 1½ Tbsp), scoop balls of cookie dough and place on the prepared baking sheets, leaving 2-inches between balls.
Put about ½ cup all-purpose flour into a shallow bowl, dip the bottom of a water glass or measuring cup and use it to flatten the dough balls, coating it in flour each time.
Bake for 12 to 13 minutes or until browned and crisp around the edges. Transfer to a wire rack to cool completely.
Make the cream cheese frosting by placing the cream cheese in a mixing bowl. Using a hand mixer, beat until smooth. Gradually add butter 2 Tablespoons at a time, and continue beating until smooth and well blended. Add powdered sugar and vanilla all at once. Blend to combine.
Once the cookies are completely cooled, pair them up according to size and shape. Prepare a piping bag with just the coupler, fill it with icing and pipe an even swirl on the bottom/flat side of one half of the cookie pairs. Sandwich them together with the remaining cookies.
Store cookies in an airtight container at room temperature or in the fridge for up to 3 days.
Notes
*If your raisins are not plump and moist, soak them in hot water for at least 10 minutes to help them plump up. Drain them and dry them on a paper towel.