with in the context of returning a view: passes data to the view
return view('view.name')->with('var', $var);
with in the context of Eloquent is for eager-loading relations - this goes to reducing the number of queries being made on the database since we are not fetching all of the Post instances and the as we iterate of them, make a query to fetch the Comments attached to each Post:
Post::with('comments')->get();
with in the context of a response flashes a key/value pair the session
return back()->with('key', $value);