==== Use a Custom Eloquent Query Builder: Define your own Builder class with reusable methods, then tell your model to use it by overriding newEloquentBuilder(). For example: ```php // app/Models/Builders/ProductBuilder.php namespace App\Models\Builders; use Illuminate\Database\Eloquent\Builder; class ProductBuilder extends Builder { public function active() { return $this->where('is_active', true); } public function pricedAbove(float $minPrice) { return $this->where('price', '>=', $minPrice); } } ``` ```php // app/Models/Product.php namespace App\Models; use App\Models\Builders\ProductBuilder; use Illuminate\Database\Eloquent\Model; class Product extends Model { public function newEloquentBuilder($query): ProductBuilder { return new ProductBuilder($query); } } ``` Now you can fluently chain: ```php $premium = Product::active()->pricedAbove(100)->get(); ```