protected function runChecks($action, $input = [], $original = [])
    {
        // Perform a basic check to see if the current action is authorised
        // to be performed on this resource
        $this->checkAuthorisation($action);

        // If input data is given
        if (! empty($input)) {
            // Run input validation on the input data
            $filtered = $this->applyValidationRules($action, $input);

            // Run business rule validation on the input data
            $this->applyDomainRules($action, $input, $original);

            return $filtered;
        }
    }