зачем вы добавляете "шума" в модель? чем ваш статик метод getUser который будет вызываться как
User::getUser($login) лучше чем User::whereLogin($login)->first()? Я бы еще понял будь этот метод getByLogin в UsersRepository. статик метод withUser вообще бред - User::withUser($login) - ват?
Нейминг полей заставил меня плакать.
Зачем делать жадноленивую загруку для одного объекта?
смотрите, у вас сейчас билдер делает так `Условие_1 ИЛИ Условие_2 И Условие 3`
Вы же хотите что бы было `(Условие_1 ИЛИ Условие_2) И Условие 3`
"Скобки" в ларавелевском билдере добавляются используя анонимку.