fetchUser() ->then(function (DiscordUser $discordUser) { $user = User::find($discordUser->id); if (!$user) { $user = new User(); $user->id = $discordUser->id; $user->username = $discordUser->username; $user->discriminator = $discordUser->discriminator; $user->locale = $discordUser->locale ?: 'en'; $user->verified = $discordUser->verified ?: false; $user->mfa_enabled = $discordUser->mfaenabled ?: false; } $user->avatar = $discordUser->avatarhash ?: null; if ($user->username != $discordUser->username) { $user->username = $discordUser->username; $user->discriminator = $discordUser->discriminator; } $media = Storage::disk('media'); if ($user->avatar && $media->missing('avatar/'.$user->id.'/'.$user->avatar.'.png')) { try { $url = $discordUser->getAvatarAttribute('png'); $content = Http::get($url)->body(); $media->makeDirectory('avatar/'.$user->id); $media->put('avatar/'.$user->id.'/'.$user->avatar.'.png', $content); $user->avatar_cached = now(); } catch (\Exception $e) { } } else { $user->avatar_cached = now(); } $user->save(); }); } }