protected function fireObservableEvent(string $event, bool $halt)
    {
        if (! isset(static::$dispatcher)) {
            return true;
        }

        $className = \get_class($this);
        $event = $this->getObservableKey($event);

        $method = $halt ? 'until' : 'handle';

        return static::$dispatcher->$method("{$event}: {$className}", $this);
    }