It looks like the issue you're encountering is related to the form not being set up to handle file uploads. When you're uploading files in a form, you need to ensure that the form has the enctype attribute set to multipart/form-data. Without this attribute, the file upload will not work properly, and the server will not receive the uploaded file.
Here's how you can modify your form tag to include the enctype attribute:
<form method="POST" action="{{ route('user-profile-information.update') }}" class="ask-form mt40" enctype="multipart/form-data">
@csrf
@method('PUT')
<!-- Your other form fields -->
<div class="input-wrap">
Upload new image
<input type="file" id="photo" name="photo" style="display: inline-block; padding:10px 0px 10px 10px; color: gray;cursor: pointer;">
</div>
<!-- Your other form fields -->
<div class="text-right">
<input type="submit" class="btn gradient color-white color-white plr50 ptb19 text-right" value="Update Profile" />
</div>
</form>
Notice the addition of enctype="multipart/form-data" in the form tag. This allows the form to send files to the server.
Additionally, make sure that your validation rules in the Fortify code are correct and that the photo field is properly configured to accept the file types you want. The validation rules you've provided seem to be correct for handling image uploads.
Lastly, ensure that your server is configured to handle the file size you're expecting to upload. The max:1024 rule in your validation means that the file should be no larger than 1MB. If you're trying to upload a file larger than that, you'll need to adjust the validation rule accordingly.
If you've made these changes and are still encountering issues, you may want to check your server's error logs for more detailed information about what might be going wrong.