How to do user relations, and User editing only their content? Doing Drupal 8.6 is hard (I come from Laravel and Wordpress world).

I manage to do by myself OAuth token authentication with Vue, but I stopped on User relations and content-type. I know that where is programmer there is a way, but I just want to see what you do things then choose best option.

How can I, for example, create a friends system? With normal table structure is like this:

+----+--------+-----------+---------+
| id | sender | recipient |  status |
+----+--------+-----------+---------+
| 24 |   11   |    25     | [0,1,2] |
+----+--------+-----------+---------+


Is there built way in Drupal 8.6 to do it or should I get plugin? Or just do content-type Friendships with thse fields?

And when I allow user to create a Portfolio, the right way will be to create Content-Type Portfolio with Gallery field, and just give access to peoples to add nodes? How I can give User access to only edit or delete their own content?
You could use the Group module for this. Group allows for creating arbitrary collections of your content and users on your site, and grant access control permissions on those collections. The Group module creates groups as entities, making them fully fieldable, extensible and exportable.

Some basics about he Group module to be aware of:


Make sure you enable gnode, a submodule of the Group module.
For each group type you need to define the appropriate permissions (view, edit, delete, etc) for the various Content Types.
Every group can have users, roles and permissions attached to it (refer to "What are the various roles supported by the Group module?" for more details about that).


With the appropriate permissions configured, it's just a matter of assigning a node to a Group: based on how you configured the roles and permissions, the Group module will allowed/deny access for any user.
Refer to "How to create collections of content that can be accessed by users with various access levels?" for more  info about all this.

Resources


Community documentation for the Group module.
Video tutorial "How to use the Group module in Drupal 8 to manage editorial access control to different areas of a web site".