public function getValidTransitions()
    {
        $available = $this->BaseAction()->Transitions();
        $valid     = new ArrayList();

        // iterate through the transitions and see if they're valid for the current state of the item being
        // workflowed
        if ($available) {
            foreach ($available as $transition) {
                if ($transition->isValid($this->Workflow())) {
                    $valid->push($transition);
                }
            }
        }

        $this->extend('updateValidTransitions', $valid);

        return $valid;
    }