protected function applySecurityModel(QueryBuilder $qb, $alias)
    {
        $model  = $this->tenant->getTenantSecurityModel();
        $method = 'apply' . ucfirst($model) . 'SecurityModel';

        if ( method_exists($this, $method) ) {
            $this->$method($qb, $alias);
        } else {
            throw new \RuntimeException(
                sprintf('Security model "%s" has not been implemented by "%s"', $model, $method)
            );
        }
    }