Hi,
That's a lot of code to tackle, but I'll try to offer some general advice. One of the first things I noticed is that you are doing a lot of
Model::where('id', '=', $id)
These can be compacted simply to
Model::find($id);
I'm not sure how you are returning a collection (using 'first()') on the results of those queries since you should probably be using ids as unique identifiers. If not then there should be a good reason why multiple 'suspects' etc have the same ID. Perhaps you should look over the docs on how to do basic inserts, retrieves, updates etc for Models. http://laravel.com/docs/5.1/eloquent
If you aren't using Eloquent, you can still abstract a lot of this away in your own model classes, but using raw database queries as above instead of eloquent query builder.
I would also recommend you take a look at this package: http://fractal.thephpleague.com That will allow you to format the response within its own object (you have a lot going on in your controllers) and decouple it from your raw SQL queries. This will save you from doing things like this:
...->get([
'crime_reports.*', //to get ids and timestamps
'ct.crime_type as crime_type',
'cn.crime_description as crime_name',
's.firstname as suspect_name',
'v.firstname as victim_name'
]);
so that you can do something like the following, without caring about how it should look (since you should ask yourself if the controller is responsible for making sure all the field names are a certain way? I would bet it's a no):
$reports = CrimeReport::all();
$collection = new League\Fractal\Resource\Collection($reports);
return response($fractalManager->createData($collection)->toArray(), 200);
So on the same line of thought, you should really move a lot of your DB code to at least the Model class, since why would the controller be responsible for retrieving all of the model information? I would also perhaps recommend a Mapper layer of some sort, so that you can put the request data in to the mapper object and get a plain old array or object returned that you know will be the format for the rest of your application (so that your input is converted to a standard format at the point of entry).
Sorry if the reply seems a bit incoherent, there's a lot of stuff here that could be worked on but I hope you'll find some of my advice useful :)