確認環境
・laravel v5.7.28
・MySQL 8.0
・PHP 7.3.0
MySQLのLIKEでは濁点/半濁点の区別を行いません。大文字と小文字の区別もしません。
厳密に一致させるときは、LIKE BINARY
をつかいます。
ふつうのSQLではこう。
SELECT * FROM user WHERE name LIKE BINARY '%やまだ%;
Eloquentではこうやります。
$user->where('name','LIKE BINARY','%やまだ%');
以前はサポートされていなかったようですが
どこかのタイミングで修正されました。
https://github.com/laravel/framework/commit/76f6da4dab1e9e4847362a2b2b0c428e25805f0c#diff-cc3d43e01028390141596ae0da939930
サポートされていないバージョンを使用していて、アップデートはできないよという場合は
上記コミットと同じようにコードを修正すればOKです。(自己責任)