Функция storeAs () принимает три параметра.
storeAs(path,name,options)
В параметрах указывается видимость файла.В вашем случае:
if ($request->hasFile('photo')) {
$photo = $request->photo;
$ext = $photo->getClientOriginalExtension();
$filename = uniqid() . '.' . $ext;
$photo->storeAs('posts/' . $request->user()->id, $filename,'public');
}