Laravel Version
11.28.1
PHP Version
8.3
Database Driver & Version
No response
Description
Inside the when closure you will not get a relationship instance, so any specific relationship function will not be available.
Expected:
$query to be BelongsToMany instance
Actual:
$query is a Illuminate\Database\Eloquent\Builder instance
Ex. BelongsToMany relationships, here you will not be able to call the wherePivot*-methods.
return MyModel::find(2)
->someRelationship()
->when(true, function($query) {
logger($query::class); // Illuminate\Database\Eloquent\Builder
$query->wherePivotBetween('updated_at', ['2000-05-05', '2024-05-05']);
return $query;
})->get();
Steps To Reproduce
Create a model any kind of relationship and and fire a query that uses the relationship. Like in the example above.