protected function uploadFile($endpoint, array $params = [])
{
$multipart_params = collect($params)->reject(function ($value) {
return is_null($value);
})->map(function ($contents, $name) {
if (!is_resource($contents) && $this->isValidFileOrUrl($name, $contents)) {
$contents = (new InputFile($contents))->open();
}
return ['name' => $name, 'contents' => $contents];
})->values()->all();
return $this->post($endpoint, $multipart_params, true);
}