public function process($transitionName)
    {
        /* @var $transition \Sokil\State\Transition */

        // get transition
        $transitions = $this->getNextTransitions();
        if (empty($transitions[$transitionName])) {
            throw new \InvalidArgumentException('Wrong transition name');
        }

        $transition = $transitions[$transitionName];

        // set current state
        $this->currentState = $this->states[$transition->getResultingStateName()];

        return $this;
    }