hasRules() || $rules->hasRule('optional')) { return $rules; } if (!$rules->hasRule('required')) { $rules->prependRule('optional'); } $excludeRuleIds = [ExcludeIf::id(), ExcludeUnless::id()]; foreach ($excludeRuleIds as $excludeRuleId) { // If the exclude rule is present, remove it and prepend it to the rules array so that optional comes after. if ($rules->hasRule($excludeRuleId) && $rules->getRules()[0] instanceof Optional) { $excludeRule = $rules->getRule($excludeRuleId); $rules->removeRuleWithId($excludeRuleId); $rules->prependRule($excludeRule); } } return $rules; } }