A project that I worked on used Twilio: https://www.twilio.com/pricing
You can try multiple ways, one could be
$products->where('colors->id', $color->ColorID) -> make sure you use the right cases, like Saikishore suggested.
There is also
whereJsonContains which you would use like this:
getDirty) is used BEFORE save, to see what attributes were changed from when it was retrieved from the database, while
getChanges) is used AFTER save, to see that attributes were changed/updated in the last save (from code to the database).