Как защитить поля в Eloquent от редактирования?
Тык
Там есть массив guarded. Почитай про него
Вы можете создать мутатор setUsernameAttribute и в там делать проверку на существование записи, бросая исключение в случае ошибки, так у вас модель всегда будет в валидном состоянии.