public static function boot() { parent::boot(); Newcomer::creating(function ($newcomer) { if (empty($newcomer->password)) { $newcomer->password = Crypt::encrypt(self::generatePassword()); } if (empty($newcomer->login)) { $login = strtolower(mb_substr(mb_substr(preg_replace("/[^A-Za-z0-9]/", '', $newcomer->first_name), 0, 1) . preg_replace("/[^A-Za-z0-9]/", '', $newcomer->last_name), 0, 8)); $i = ''; while (Newcomer::where(['login' => $login . $i])->count()) { if (empty($i)) { $i = 1; } $i++; } $newcomer->login = $login . $i; } }); }