method() == 'POST') { return auth('api')->check() && auth('api')->user()->can('store', TestResult::class); } else { $TestResult = $this->route('TestResult'); return auth('api')->check() && $TestResult && auth('api')->user()->can('update', $TestResult); } } public function rules() { switch ($this->method()) { case 'POST': { return [ // 'device_id' => 'required', // 'cycle_number' => 'required', 'test_type_id' => 'required|numeric|exists:test_types,id', 'result' => 'required', ]; break; } case 'PUT': case 'PATCH': { // $TestResult = $this->route('TestResult'); return [ // 'device_id' => 'required', // 'cycle_number' => 'required', 'test_type_id' => 'required|numeric|exists:test_types,id', 'result' => 'required', ]; break; } default: break; } } }