private function sendToStatusInternal($status, $delayed)
	{
		$this->_pendingEvents = [];

		list($newStatus, , $events) = $this->createTransitionItems($status, false, true);
		
		$delayedStop = false;
		if ( ! empty($events['before']) ) {
			foreach ($events['before'] as $eventBefore) {
				$this->owner->trigger($eventBefore->name, $eventBefore);
				if ( $eventBefore->isValid === false) {
					if ( $this->propagateErrorsToModel === true && count($eventBefore->getErrors()) != 0 ) {
						$this->owner->addErrors([ $this->statusAttribute => $eventBefore->getErrors() ]);
					}
					if($this->stopOnFirstInvalidEvent === true) {
						return false;
					} else {
						$delayedStop = true;
					}
				}
			}
		}
		if( $delayedStop ) {
			return false;
		}

		$this->setStatusInternal($newStatus);

		if ( ! empty($events['after']) ) {
			if ( $delayed ) {
				$this->_pendingEvents = $events['after'];
			} else {
				foreach ($events['after'] as $eventAfter) {
					$this->owner->trigger($eventAfter->name, $eventAfter);
				}
			}
		}

		if ($this->getStatusAccessor() != null) {
			$this->_statusAccessor->updateStatus($this->owner, $newStatus);
		}
		return true;
	}