umutcankarce $credentials = $request->only("email",bcrypt("password"));
yapmışsınız ama only yöntemi request içindeki verdiğiniz alanları çeken bir yöntem. Önce $request->only('email', 'password');
yapın, sonra gerekiyorsa bcrypt($credentials['password'])
şeklinde kullanın.
LoginRequest şeklinde bir form request kullandınız içeride neden tekrar if ($credentials)
şeklinde kontrol yapıyorsunuz? O request zaten bu doğrulamayı controller içinde yapmayın diye var.
Son olarak API yazarken dönen yanıt içerisinde "success" => "ok", "type" => "success", gibi ifadeler kullanılmaz. Yanıtı tanımlayan http status kodudur. Normalde şöyle olması gerekiyor:
Başarılı:
return response()->json([
'message' => __('Sisteme Giriş Yapılıyor.'),
'title' => __('Başarılı!'),
'redirect' => $url,
]);
Başarısız:
return response()->json([
'message' => __('Kullanıcı adı ya da şifre hatalı.'),
'title' => __('Başarısız!'),
], 401);
ama elbette siz istediğiniz gibi yapmakta özgürsünüz...