user()->isAdmin(); } public function rules() { $rules = [ 'fees_and_limits' => new ValidCompanyGatewayFeesAndLimitsRule(), ]; return $rules; } protected function prepareForValidation() { $input = $this->all(); /*Force gateway properties */ if (isset($input['config']) && is_object(json_decode($input['config'])) && array_key_exists('gateway_key', $input)) { $gateway = Gateway::where('key', $input['gateway_key'])->first(); $default_gateway_fields = json_decode($gateway->fields); foreach (json_decode($input['config']) as $key => $value) { $default_gateway_fields->{$key} = $value; } $input['config'] = json_encode($default_gateway_fields); } $input['config'] = encrypt($input['config']); if (isset($input['fees_and_limits'])) { $input['fees_and_limits'] = $this->cleanFeesAndLimits($input['fees_and_limits']); } $this->replace($input); } }