As you are reusing all the methods from the TasksRequest, and even replacing the request validator with a TaskRequest instance, why not type-hinting it directly on this API controller?
Something like this:
public function store(\App\Requests\TasksRequest $request) {
$result = $this->create( $request->validated() );
return $result;
}
One thing that might be different is the authorize method, if that is the case you can extend TasksRequest and override just the authorize method:
class ApiTasksRequest extends TasksRequest {
public function authorize() {
// handle API authorization
}
// rules and messages will be inherited from TasksRequest
}
Then you would just need to type-hint it:
public function store(\App\Requests\ApiTasksRequest $request) {
$result = $this->create( $request->validated() );
return $result;
}