The Bug starts occurring when trying to update the user's profile and affects every /admin route registered in the app.
Steps to reproduce the behavior:
The avatar to change.


dd() -ing $this->settings in the getLocalAttribute() function on TCG\Voyager\Models\User.php like

gives:

Tried to json_decode it but it still doesn't work.
You can do dd(json_decode($this->settings)->locale) and it gives 'en'.
Please fill out the exact versions. This feature was working for month, so there might be a change in laravel
Please fill out the exact versions. This feature was working for month, so there might be a change in laravel
I have updated my question.
As of 3 days ago, the default App\User model now includes a casts array to cast the email_verified_at attribute. Make sure it also casts settings as array, as it overrides the casts array on TCG\Voyager\Models\User.
class User extends \TCG\Voyager\Models\User
{
protected $casts = [
'email_verified_at' => 'datetime',
'settings' => 'array',
];
}
@citrtech's solution works, but don't forget to launch a php artisan cache:clear after this modification. Sometimes it could not work just with code modification.
This issue has been automatically locked since there has not been any recent activity after it was closed. If you have further questions please ask in our Slack group.
Most helpful comment
As of 3 days ago, the default
App\Usermodel now includes a casts array to cast theemail_verified_atattribute. Make sure it also castssettingsas array, as it overrides the casts array onTCG\Voyager\Models\User.