method() == 'POST') { return auth('api')->check() && auth('api')->user()->can('store', Label::class); } else { $Label = $this->route('Label'); return auth('api')->check() && $Label && auth('api')->user()->can('update', $Label); } } public function rules() { switch ($this->method()) { case 'POST': { return [ 'sterile_date' => 'required|date', 'expire_date' => 'required|date', 'sterilizer_id' => 'required', 'cycle_number' => 'required', 'lot_number' => 'required', 'package_id' => 'required', ]; break; } case 'PUT': case 'PATCH': { $Label = $this->route('Label'); return [ 'sterile_date' => 'required', 'expire_date' => 'required', 'sterilizer_id' => 'required', 'cycle_number' => 'required', 'lot_number' => 'required', 'package_id' => 'required', ]; break; } default: break; } } }