أعتقد أن سبب المُشكلة أنك تقوم بتشفير كلمة المرور مرتين الأولى في المُتحكم RegisterController و الثانية في الMutator او المُعدل: setPasswordAttribute و لحل المُشكل يُمكنك الإستغناء عن الMutator و إستعمال فقط التشفير في المُتحكم RegisterController :
<?php
protected function create(array $data)
{
return User::create([
'name' => $data['name'],
'email' => $data['email'],
'password' => Hash::make($data['password']),
]);
}
// أو
protected function create(array $data)
{
return User::create([
'name' => $data['name'],
'email' => $data['email'],
'password' => bcrypt($data['password']),
]);
}
أما إن أردت إستخدام المُعدِل setPasswordAttribute فيُمكنك ذلك لكن يجب عدم تشفير كلمة المرور في المُتحكم RegisterController بهذا الشكل:
'password' => $data['password'],
بدل:
'password' => Hash::make($data['password']),
ثم في المُعدل:
public function setPasswordAttribute($value)
{
$this->attributes['password'] = bcrypt($value);
}
و بهذا الشكل سيتم تشفير كلمة المرور من جهة واحدة.
ملاحظة: تستخدم Laravel التشفير bcrypt إفتراضياً و تدعم الأنواع التالية: bcrypt, argon, argon2id لذلك إن لم تُغير في الإعدادات يُمكنك إستخدام الدالة المُساعدة bcrypt أما إن قمت بتغيير الإعدادات فيجب إستعمال الكلاس Hash.