I see the problem, your request is not able to pass the file content with the request. Passing file path in json payload won't work. I am not much familier with PHP so not 100% sure. You can check if the content is being passed properly. When sending the form data from postman, it was able to send the file content.
If you want to use raw json data only then you can use base64 encoded string formation of the file data in the request alternatively.