Models should implement getKey method.
Repositories should have methods to find and to get by criteria.
Illuminate base repository implementing find/get by criteria methods.