I am getting an error saying that 'data in return Datatables::($data) is undefined'
public function datatable(){
        if (isset($_GET['status']) && $_GET['status'] != '') {
            $status = $_GET['status'];
        } else {
            $status = 0;
        }
        $startDate = "01" . "-" . date('m-Y');
        $endDate = date('d-m-Y');
        $mode = 'all';
        if (isset($_GET['startDate']) && $_GET['startDate'] != '') {
            $startDate = $_GET['startDate'];
        }
        if (isset($_GET['endDate']) && $_GET['endDate'] != '') {
            $startDate = $_GET['startDate'];
        }
        if (isset($_GET['mode'])) {
            $mode = $_GET['mode'];
        }
        $startDateQuery = date('Y-m-d', strtotime($startDate));
        $endDateQuery = date('Y-m-d', strtotime($endDate));
        if ($status == "0"){
            if ($mode == "all") {
                $data = PurchaseH::select('purchase_h.*', 'vendors.name')->leftJoin('vendors', 'purchase_h.id_ven', '=', 'vendors.id')->where('purchase_h.active', '!=', '0');
            }
            if ($mode == "limited") {
                $data = PurchaseH::select('purchase_h.*', 'vendors.name')->leftJoin('vendors', 'purchase_h.id_ven', '=', 'vendors.id')->where('purchase_h.active', '!=', '0')->whereBetween('purchase_h.date', [$startDateQuery,$endDateQuery]);
            }
        }else{
                if ($mode == "all") {
                    $data = PurchaseH::select('purchase_h.*', 'vendors.name')->leftJoin('vendors', 'purchase_h.id_ven', '=', 'vendors.id')->where('purchase_h.active', '!=', '2')->where('purchase_h.status', '=', $status);
                }
                if ($mode == 'limited') {
                    $data = PurchaseH::select('purchase_h.*', 'vendors.name')->leftJoin('vendors', 'purchase_h.id_ven', '=', 'vendors.id')->where('purchase_h.active', '!=', '2')->where('purchase_h.status', '=', $status)->whereBetween('purchase_h.date', [$startDateQuery, $endDateQuery]);
                }
        }
            return DataTables::of($data)
                ->addColumn('action', function ($data) {
                    $url_edit = url('transaction/purchase-order/'.$data->id.'/edit');
                    $url = url('transaction/purchase-order/'.$data->id);
                    $url_receive = url('transaction/purchase-order/receive/'.$data->id);
                    $view = "<a class='btn btn-action btn-primary' href='$url' title='View'><i class='nav-icon fas fa-eye'></i></a>";
                    $edit = "";
                    $receive = "";
                    $delete = "";
                    if ($data->status == 'order') {
                        $edit = "<a class='btn btn-action btn-warning' href='$url_edit' title='View'><i class='nav-icon fas fa-edit'></i></a>";
                        $receive = "<button class='btn btn-secondary' data-url='$url_receive' onclick='receiveData(this)'><i class='nav-icon fas fa-hand-holding'></i></button>";
                        $delete = "<button class='btn btn-danger' data-url='$url' onclick='deleteData(this)'><i class='nav-icon fas fa-trash'></i></button>";
                        return $view."".$edit."".$delete."".$receive;
                    }
                })
                ->editColumn('date', function ($data) {
                    return date('d-m-Y', strtotime($data->date));
                })
                ->editColumn('total', function ($data) {
                    return number_format($data->total, 0, '.', ',');
                })->make(true);
//        } catch (\Exception $e) {
//        }
    }
 
     
    