method() == 'POST') { return auth('api')->check() && auth('api')->user()->can('store', Message::class); } else { $Message = $this->route('Message'); return auth('api')->check() && $Message && auth('api')->user()->can('update', $Message); } } public function rules() { switch ($this->method()) { case 'POST': { return [ 'title' => 'nullable', 'text' => 'required', 'recipient_user_id' => 'required', ]; break; } case 'PUT': case 'PATCH': { $Message = $this->route('Message'); return [ 'title' => 'nullable', 'text' => 'required', 'recipient_user_id' => 'required', ]; break; } default: break; } } }