I never punish him and never have.
Whenever he behaves in a way that's not OK with me I first ask myself "does he understand my expectations here, have I already explained my expectations to him?". Usually not, so I explain that his behavior isn't acceptable and why. I very rarely need to do this.
The one time he behaved in a way that made me really angry I dealt with it at the time by speaking to him about it and also with the other people involved and there was still no punishment.