Preheat the oven to 350°F (175°C) and prepare three 9-inch round cake pans by greasing and flouring them. In a large mixing bowl, cream the butter and granulated sugar together until the mixture is light and fluffy. Add the eggs one at a time, beating well after each addition, then mix in the vanilla extract.
In a separate bowl, whisk together the flour, baking powder, baking soda, and salt. Gradually add the dry ingredients to the creamed mixture, alternating with the milk, beginning and ending with the dry ingredients. Gently fold in the chopped pecans until evenly distributed throughout the batter.
Evenly divide the batter between the three prepared pans and smooth the tops. Bake for 25–30 minutes, or until a toothpick inserted into the center of each cake comes out clean. Allow the cakes to cool in their pans for 10 minutes before turning them out onto wire racks to cool completely.
To make the frosting: Melt the butter in a medium saucepan over medium heat. Stir in the brown sugar and milk, then bring the mixture to a boil. Remove from heat and let it cool for about 10 minutes. Gradually beat in the powdered sugar and vanilla extract until the frosting is smooth and creamy.
To make the caramel topping: In another saucepan, melt the butter over medium heat. Add the brown sugar and milk, stirring until combined. Bring to a boil, then remove from heat and allow the mixture to cool for at least 20 minutes before using.
To assemble the cake: Once the cake layers are completely cool, spread the caramel frosting between each layer and over the top and sides of the cake. Just before serving, drizzle the cooled caramel topping over the cake and garnish with whole pecans if desired.