protected function runValidationEvents($events, array $phrases)
    {
        is_array($events) || $events = (array) $events;

        $events = array_merge($this->getValidationEvents(), $events);

        $rules   = new Fluent($this->getBindedRules());
        $phrases = new Fluent(array_merge($this->getValidationPhrases(), $phrases));

        foreach ((array) $events as $event) {
            $this->validationDispatcher->fire($event, [& $rules, & $phrases]);
        }

        return [
            $rules->getAttributes(),
            $phrases->getAttributes(),
        ];
    }