Gather all ingredients and ensure butter, eggs, and milk are at room temperature. Preheat your oven to 350°F (175°C) and grease a 9x13 inch baking pan, then line it with parchment paper, leaving some overhang for easy removal.
In a medium bowl, whisk together flour, baking powder, and salt.
Using an electric mixer, beat the butter and sugar on medium-high speed for 4-5 minutes until light and fluffy.
Add eggs one at a time, beating well after each addition. Stir in the vanilla extract.
With mixer on low speed, add flour mixture in three parts, alternating with milk, beginning and ending with the flour.
In a small bowl, mix cocoa powder and hot water until smooth, creating a chocolate paste. Transfer about one-third of the batter to another bowl and fold in the chocolate mixture until fully incorporated.
Dollop alternating spoonfuls of vanilla and chocolate batter into the prepared pan. Using a butter knife, gently swirl the batters together with a figure-eight motion, creating a marbled effect. Limit yourself to 5-6 swirls.
Bake for 35-40 minutes, or until a toothpick inserted into the center comes out with just a few moist crumbs. Allow the cake to cool in the pan for 15 minutes before transferring to a wire rack to cool completely.
For the buttercream, beat butter until creamy, then gradually add powdered sugar, cream, vanilla, and salt. Beat on high speed for 3-4 minutes until light and fluffy. Divide the buttercream and color as desired with gel food coloring.
Spread a base layer of buttercream over the cooled cake. Fill piping bags fitted with round tips with your colored buttercream. Pipe rows of graduation tassels across the cake by creating a small dot and pulling down slightly. Add caps using a small square of fondant or chocolate with a thin buttercream string.