I have a `Cart` model like this : 

```
class Cart extends Model
    {
        protected $table = 'cart';

        protected $fillable = ['user_id', 'delivery_method'];

        public function products ()
        {
            return $this->belongsToMany(Product::class, 'cart_products', 'cart_id', 'product_id')->withPivot('quantity');
        }

    }

```

And **cart** table columns are : 

```
id
user_id
delivery_method
created_at
updated_at

```

And there is a pivot table named `cart_products` to relate `Card` model to a `Product` Model. 

Suppose I have an specific `$user_id` variable. now I want Cart with that user\_id with their products. for that I wrote this : 

```
$cartWithProducts = Cart::with('products')->where(['user_id' => $user_id])->first();

if (!$cartWithProducts->isEmpty()) {
//Some codes come here
}

```

But after run, I got this error : 

```
Call to undefined method Illuminate\Database\Query\Builder::isEmpty() {"exception":"[object] (BadMethodCallException(code: 0): Call to undefined method Illuminate\\Database\\Query\\Builder::isEmpty() at D:\\wamp\\www\\barlly\\vendor\\laravel\\framework\\src\\Illuminate\\Database\\Query\\Builder.php:2461

```

I do not want to use **lazy loading** approach beacause **n query** problem. what is solution in this case?

**Also each User can have only one Cart in time.**