variants = $variants; } public function call($method, &...$args) { $values = array(); foreach ($this->variants as $variant) { if (method_exists($variant, $method ?? '')) { $value = $variant->$method(...$args); if ($value !== null) { $values[] = $value; } } } return $values; } }