@@ -36,14 +36,26 @@ public function scopeForUser(Builder $query, User $user): Builder
3636
3737 public function scopeForNurse (Builder $ query , User $ user ): Builder
3838 {
39- return $ query ->whereRelation ('beneficiary ' , 'nurse_id ' , $ user ->id );
39+ return $ query ->whereHas (
40+ 'beneficiary ' ,
41+ fn (Builder $ query ): Builder => $ query
42+ // The parent row is already nurse-scoped
43+ ->withoutGlobalScope ('forCurrentUser ' )
44+ ->where ('nurse_id ' , $ user ->id )
45+ );
4046 }
4147
4248 public function scopeForMediator (Builder $ query , User $ user ): Builder
4349 {
4450 return $ query ->where (
4551 fn (Builder $ query ): Builder => $ query
46- ->whereRelation ('beneficiary ' , 'mediator_id ' , $ user ->id )
52+ ->whereHas (
53+ 'beneficiary ' ,
54+ fn (Builder $ query ): Builder => $ query
55+ // The parent row is already nurse-scoped
56+ ->withoutGlobalScope ('forCurrentUser ' )
57+ ->where ('mediator_id ' , $ user ->id )
58+ )
4759 ->when (
4860 $ this ->isFillable ('mediator_has_access ' ),
4961 fn (Builder $ query ): Builder => $ query ->where ('mediator_has_access ' , true )
@@ -53,10 +65,15 @@ public function scopeForMediator(Builder $query, User $user): Builder
5365
5466 public function scopeForCoordinator (Builder $ query , User $ user ): Builder
5567 {
56- return $ query ->where (
68+ return $ query ->whereHas (
69+ 'beneficiary ' ,
5770 fn (Builder $ query ): Builder => $ query
58- ->whereRelation ('beneficiary.nurse ' , 'activity_county_id ' , $ user ->county_id )
59- ->orWhereRelation ('beneficiary.mediator ' , 'activity_county_id ' , $ user ->county_id )
71+ ->withoutGlobalScope ('forCurrentUser ' )
72+ ->where (
73+ fn (Builder $ query ): Builder => $ query
74+ ->whereRelation ('nurse ' , 'activity_county_id ' , $ user ->county_id )
75+ ->orWhereRelation ('mediator ' , 'activity_county_id ' , $ user ->county_id )
76+ )
6077 );
6178 }
6279}
0 commit comments