filters); $sorting = json_decode($request->sorting); $rels = $request->rels ?: array(); $dataTableInput = new DataTableInput( $request->start, $request->size, $filters, $sorting, $rels, $allowedFilters, $allowedSortings ); $query = $this->makeQueryFromModel($mixed); $dataTableService = (new DataTableService($query, $dataTableInput)) ->setAllowedFilters($allowedFilters) ->setAllowedRelations($allowedRelations) ->setAllowedSortings($allowedSortings) ->setAllowedSelects($allowedSelects); return $dataTableService->getData(); } protected function makeQueryFromModel(Model|Builder $mixed): Builder { return ($mixed instanceof Model) ? $mixed->query() : $mixed; } }