1. Preheat the oven to 180°C/Gas 4. Grease and flour three (23-cm) cake tins.
2. Using an electric mixer, cream the butter until fluffy. Add the caster sugar and continue to beat well for 6 to 8 minutes. Add the eggs one at a time, beating well after each addition. Add the flour and milk alternately to the creamed mixture, beginning and ending with the flour. Add the vanilla and continue to beat until just mixed.
3. Divide the batter equally among the prepared tins. Level the batter in each tin by holding the tin 10cm above the counter and dropping it flat onto the counter. Do this several times to release any air bubbles and ensure you get a more level cake. Bake for 25 minutes or until golden brown.
4. While the cake is baking, make the filling. In a saucepan, combine the butter, brown sugar and milk. Cook and stir over medium heat for 3 to 5 minutes. Remove from the heat and stir in the vanilla.
5. Remove the cake layers from the oven and allow the cake to remain in the tins as you prepare to stack and fill. Remove the first layer and invert onto a cake plate. Pierce the cake layer with a toothpick over the entire surface. Spread a third of the filling mixture on the cake layer. Top with the second layer and repeat the process for the second and third layers.
Cook's note: As you stack the layers together, use toothpicks to stick them together and prevent the cake from shifting.
For the caramel icing:
1. Melt the butter in a saucepan over medium heat and stir in the brown sugar and cream. Bring to a boil and transfer to a mixing bowl.
2. Add the icing sugar and vanilla. Beat with a handheld electric mixer until it reaches a spreading consistency. At this time it may be necessary to add a tablespoon of double cream, or more, if the icing gets too thick. Be sure to add the cream in small amounts because you can always add more, but you can't take any away.
3. Ice the cake and sprinkle the top with chopped nuts, if desired.