Интерфейс при наследовании метода: как правильно сделать?
 Есть базовый класс User, от которого наследуются другие классы, например Admin.
Зря. Админ - это не разновидность пользователя, это вполне определенная роль на сайте, связанная с конкретным пользователем. Наследование здесь не имеет смысла, логика администрирования сайта и пользователя сайта не пересекаются.
Тут есть обсуждение 
https://stackoverflow.com/questions/39068983/php-7...
Может стоит отказаться от статики и возвращать IUser ?