public function make()
    {
        if (empty($this->_columns)) {
            throw new CollectionException('At least one column is required to generate a resource table.');
        }

        // Prepare builder object before calling Table
        $this->_prepareBuilder();

        // Finally execute prepared query builder
        $items = $this->_builder->get();

        return with(new Table($items, [
            'collection_generator' => $this,
            'columns'              => $this->_columns,
            'per_page'             => $this->_perPage,
            'paginate'             => $this->_paginate,
            'paginator_presenter'  => $this->_getPaginatorPresenter($items),
            'view_name'            => $this->_viewName,
            'filter'               => $this->_filter,
            'extra'                => $this->_extraViewData,
        ]))->make();
    }