Как сделать вход по логину, вместо email? laravel 7.0 passport oauth

Использую laravel 7 в связке с VueJS. Нужно сделать вход по логину. По email все работает корректно и возвращает код 200, а по логину возвращает 400. Это мой первый проект laravel + Vue, поэтому не хватает знаний и понимая как это работает. Данный код нашел на просторах интернета, пытаюсь понять как работает и переделать. Там где у меня request('login') было указано 'email' и все работало

public function login()
{
    // Проверяем существует ли пользователь с указанным email адресом
    $user = User::where('login', request('login'))->first();

    if (!$user) {
        return response()->json([
            'message' => 'Wrong email or password',
            'status' => 422
        ], 422);
    }
    // Если пользователь с таким email адресом найден - проверим совпадает
    // ли его пароль с указанным
    if (!Hash::check(request('password'), $user->password)) {
        return response()->json([
            'message' => 'Wrong email or password',
            'status' => 422
        ], 422);
    }

    // Внутренний API запрос для получения токенов
    $client = DB::table('oauth_clients')
        ->where('password_client', true)
        ->first();

    // Убедимся, что Password Client существует в БД (т.е. Laravel Passport
    // установлен правильно)
    if (!$client) {
        return response()->json([
            'message' => 'Laravel Passport is not setup properly.',
            'status' => 500
        ], 500);
    }

    $data = [
        'grant_type' => 'password',
        'client_id' => $client->id,
        'client_secret' => $client->secret,
        'username' => request('login'),
        'password' => request('password'),
    ];

    $request = Request::create('/oauth/token', 'POST', $data);

    $response = app()->handle($request);

    // Проверяем был ли внутренний запрос успешным
    if ($response->getStatusCode() != 200) {
        return response()->json([
            'message' => 'Wrong email or password',
            'status' => 422
        ], 422);
    }

    // Вытаскиваем данные из ответа
    $data = json_decode($response->getContent());

    // Формируем окончательный ответ в нужном формате
    return response()->json([
        'token' => $data->access_token,
        'user' => $user,
        'status' => 200
    ]);
}

Ответы (0 шт):