Вместо использования md5 вы можете использовать генератор UUID. Одна из причин этой проблемы, потому что md5 генерирует один и тот же ha sh для одного и того же ввода. например, когда вы передадите md5 (111), он сгенерирует 698d51a19d8a121ce581499d7b701668. так что если для другого пользователя вы сгенерируете тот же ключ ha sh, то будет создан последний профиль изображения, а первый заменит его последним.
Сценарий: Пользователь1:
$profilePicName = md5(111) . ".jpg";
$contents = file_get_contents( $providerUser->avatar_original );
Storage::disk('local')->put( 'profiles/' . $profilePicName, $contents );
$user = User::create([
'email' => $providerUser->getEmail(),
'name' => $providerUser->getName(),
'profile_path' => $profilePicName
]);
Сценарий: Пользователь2:
$profilePicName = md5(111) . ".jpg";
$contents = file_get_contents( $providerUser->avatar_original );
Storage::disk('local')->put( 'profiles/' . $profilePicName, $contents );
$user = User::create([
'email' => $providerUser->getEmail(),
'name' => $providerUser->getName(),
'profile_path' => $profilePicName
]);
Теперь у них обоих есть 698d51a19d8a121ce581499d7b701668.jpg, сохраненные в их профиле. И в этом случае первый профиль пользователя будет таким же, как второй профиль изображения пользователя.