Preheat oven to 350°F (175°C) and grease cake pans thoroughly.
Line the bottoms with parchment paper to prevent sticking.
In a large bowl, whisk together flour, cocoa powder, sugar, baking soda, baking powder, and salt.
Add eggs, milk, oil, and vanilla extract to the dry ingredients.
Beat the mixture until smooth and well combined.
Add sour cream and mix gently for extra moisture.
Slowly pour in hot coffee or water while mixing until the batter becomes smooth and slightly thin.
Divide batter evenly between prepared cake pans.
Tap pans lightly to remove air bubbles.
Bake for 30–35 minutes or until a toothpick inserted comes out clean.
Remove cakes from oven and let them cool in pans for 10–15 minutes.
Transfer to a cooling rack and allow to cool completely.
For frosting, beat butter until creamy and smooth.
Add peanut butter and mix until fully combined.
Gradually add powdered sugar while mixing on low speed.
Pour in cream, vanilla extract, and salt.
Beat on medium-high speed until light and fluffy.
Level cake layers if needed for even stacking.
Place one layer on a cake stand and spread frosting evenly.
Add the second layer and repeat frosting process.
Frost the entire cake, smoothing the sides and top.
Decorate with chocolate chips or peanuts if desired.
Chill for 20 minutes before slicing for clean cuts.