Preheat your oven to 350°F (175°C). Grease and flour the two 9-inch round cake pans, and line the bottoms with baking paper.
In a large mixing bowl, combine the flour, sugar, cocoa powder, baking powder, baking soda, and salt. Whisk together until well mixed.
Add the eggs, milk, vegetable oil, vanilla extract, orange zest, and orange juice to the dry ingredients. Mix on medium speed with an electric mixer for about 2 minutes until well combined.
Carefully stir in the boiling water; the batter will be thin. Pour the batter evenly into the prepared cake pans.
Bake in the preheated oven for 30-35 minutes, or until a toothpick inserted in the center comes out clean.
Remove the cakes from the oven and allow them to cool in the pans for 10 minutes. Afterward, turn the cakes out onto a cooling rack to cool completely.
While the cakes cool, prepare the frosting. In a mixing bowl, beat the softened butter until creamy. Gradually add powdered sugar and cocoa powder, beating until smooth. Add orange zest and enough heavy cream to achieve the desired consistency.
Once the cakes are completely cool, place one layer on a serving plate. Spread a layer of frosting on top, then place the second cake layer over it. Use the remaining frosting to cover the top and sides of the cake.
Optional: Garnish with additional orange zest or chocolate shavings for a decorative touch.
Slice and serve the cake at room temperature.