I understand what you're trying to do but why would you compare column_x and column_y eadger loading.
For example when you do:
A::with("bs")->get()
cela n'a pas de sens de comparer column_y avec $this->column_x because column_x doesnt exists.
you could do something like:
A::with([
"bs" => fn ($query) => $query->where('column_y', '=', 'something');
])->get()
Have a good day.
Dorian, PingMyNetwork