=', int $count = 1, string $boolean = 'and', Closure|array|string $callback = null, ?string $morphable = null) {} /** @return self */ public function powerJoinDoesntHave(string $relation, string $boolean = 'and', Closure|array|string $callback = null) {} /** @return self */ public function powerJoinWhereHas(string $relation, Closure|array|string $callback = null, string $operator = '>=', int $count = 1) {} // PowerJoinClause methods for when a closure is being used as a callback /** @return self */ public function as(string $alias, ?string $joinedTableAlias = null) {} /** @return self */ public function on($first, $operator = null, $second = null, $boolean = 'and') {} /** @return self */ public function withGlobalScopes() {} /** @return self */ public function withTrashed() {} /** @return self */ public function onlyTrashed() {} /** @return self */ public function left() {} /** @return self */ public function right() {} /** @return self */ public function inner() {} } }