Preheat your oven to 350°F (175°C). Grease and flour the cake pans or line the bottom with parchment paper.
In a large mixing bowl, combine the flour, sugar, baking powder, baking soda, spices (cinnamon, nutmeg, ginger, cloves), and salt. Mix well.
In another bowl, mix the pumpkin puree, vegetable oil, and eggs until well combined.
Gradually add the wet ingredients to the dry ingredients, mixing until just combined. Do not overmix.
Divide the batter evenly between the two prepared cake pans. Smooth the tops with a spatula.
Bake in the preheated oven for 25-30 minutes, or until a toothpick inserted in the center comes out clean.
Once baked, remove the cakes from the oven and allow them to cool in the pans for about 10 minutes. Then transfer them to a cooling rack to cool completely.
While the cakes are cooling, prepare the cream cheese frosting. In a mixing bowl, beat the softened cream cheese and butter together until smooth and creamy.
Gradually add the powdered sugar, mixing well until completely incorporated. Add the vanilla extract and mix until combined. If the frosting is too thick, add milk one tablespoon at a time until the desired consistency is reached.
Once the cakes are cool, place one layer on a serving plate. Spread a generous amount of cream cheese frosting on top.
Place the second layer on top, and frost the top and sides of the cake with the remaining cream cheese frosting.
Decorate as desired, and slice to serve.