all() would be. Must include a 'file' rule accepting an * uploaded file — this class always reads the file from that key. * * @return array> */ abstract protected function validationRules(Request $request): array; public function store(Request $request, FileService $files): JsonResponse { $validator = Validator::make( $request->all(), $this->validationRules($request), $this->validationMessages($request), $this->validationAttributes($request), ); if ($validator->fails()) { return response()->json(['error' => $validator->errors()->first('file')], 422); } $file = $files->store($request->file('file'), $this->purpose()); return response()->json(['file_id' => $file->id]); } /** * @return array */ protected function validationMessages(Request $request): array { return []; } /** * @return array */ protected function validationAttributes(Request $request): array { return []; } }