because the method delete on the user is defined for *User not for User , while Admin's Delete is defined for the non pointer Admin . User embeds Admin, so it inherits func (Admin) Delete() method.

try using the pointer to user (notice the & )