user()->can('edit', $this->subscription); } /** * Get the validation rules that apply to the request. * * @return array */ public function rules() { $rules = [ 'product_ids' => ['sometimes'], 'recurring_product_ids' => ['sometimes'], 'assigned_user_id' => ['sometimes'], 'is_recurring' => ['sometimes'], 'frequency_id' => ['required_with:recurring_product_ids'], 'auto_bill' => ['sometimes'], 'promo_code' => ['sometimes'], 'promo_discount' => ['sometimes'], 'is_amount_discount' => ['sometimes'], 'allow_cancellation' => ['sometimes'], 'per_set_enabled' => ['sometimes'], 'min_seats_limit' => ['sometimes'], 'max_seats_limit' => ['sometimes'], 'trial_enabled' => ['sometimes'], 'trial_duration' => ['sometimes'], 'allow_query_overrides' => ['sometimes'], 'allow_plan_changes' => ['sometimes'], 'refund_period' => ['sometimes'], 'webhook_configuration' => ['array'], 'name' => ['sometimes', Rule::unique('subscriptions')->where('company_id', auth()->user()->company()->id)->ignore($this->subscription->id)] ]; return $this->globalRules($rules); } protected function prepareForValidation() { $input = $this->all(); $input = $this->decodePrimaryKeys($input); $this->replace($input); } }