<?phpnamespace App\Calendar\Event;class EventContext{ private $strategies = []; public function __construct(iterable $strategies) { $this->strategies = $strategies; } public function handle($data) { foreach ($this->strategies as $strategy) { if ($strategy->canProcess($data)) { return $strategy->process($data); } } throw new \InvalidArgumentException('Data could not be converted.'); }}