Shared lock is, when more than one transaction is granted read access to a given record. One transaction gets shared lock on a record.
DB::table('tbl_order')->where('amount', '>', 100)->sharedLock()->get();
You can use it, when reading to prevent the rows from being modified or from being selected with another shared lock. Or you can lock some row(s) until your transaction finishes updating.
DB::table('tbl_order')->where('amount', '>', 100)->lockForUpdate()->get();