Preheat your oven to 350°F (175°C).
Grease and flour two 9-inch round baking pans.
In a large mixing bowl, combine the dry ingredients: flour, sugar, cocoa powder, baking powder, baking soda, and salt.
In another bowl, whisk together the wet ingredients: eggs, milk, vegetable oil, and vanilla extract.
Pour the wet mixture into the dry ingredients and mix until just combined.
Divide the batter evenly between the prepared pans.
Bake for 30-35 minutes, or until a toothpick inserted in the center comes out clean.
Once baked, remove from the oven and let the cakes cool in the pans for 10 minutes.
Turn the cakes out onto a wire rack to cool completely.
While the cakes cool, prepare the peanut butter frosting by beating together the heavy cream and peanut butter until fluffy.
Once the cakes are cool, place one layer on a serving plate and spread a layer of peanut butter frosting on top.
Drizzle some caramel sauce on top of the frosting and sprinkle half of the chopped Snickers bars.
Place the second cake layer on top and repeat the frosting, caramel, and Snickers layering.
To finish, pour chocolate ganache on top of the layered cake, allowing it to drip down the sides.
Chill the assembled cake for at least 30 minutes to set the ganache before slicing.
Slice the cake and serve.