I guess one way could be to add a plane that fills the inside of the barge. Subdivide it a few times in Edit Mode, best way maybe to use loop cuts Ctrl+R here to create a different amount of subdivisions in length and width to keep the faces mostly square.

Then with Proportional Editing enabled by either pressing O or using the button in the menu bar, select a few vertices here and there and move them slightly up or down with GZ to make the surface not look so perfectly flat (unless you want it like that).

Choose one spot where you want the pile to be and move it slightly more upwards. Depending on how you want it to look like you might need a higher resolution than my example. Or maybe change the falloff in the menu next to the Proportional Editing button.

To make it look smoother you can also add a Subdivision Surface modifier afterwards, just make sure you have Boundary Smooth set to Keep Corners to make sure the edges do not get rounded and no longer fill the barge completely.

Now there are two possible ways:
First, you could add a Displace modifier to your plane. Give it a new texture by clicking the New button.

On the Texture Properties tab I chose a Voronoi texture with a very small size. But note, how fine the details look like is determined by the resolution of the mesh - I have set the Subdivision Surface modifier to viewport and render levels 5 for this.

Another way would be to do it with Geometry Nodes. While the plane is selected, open a window with the Geometry Nodes Editor and click New to get a new nodetree. Since you are not yet very familiar with Geometry Nodes, I just give you an overview which nodes you need and in which submenu of the Add menu you will find them after pressing Shift+A (of course you can also search for them):
- Group Input and Group Output are there by default after creating a new nodetree
- Distribute Points on Faces under Add > Point
- Instance on Points under Add > Instances (important: not Instances to Points!)
- Ico Sphere (or other object as gravel): Add > Mesh > Primitives
- Random Value under Add > Utilities
- Join Geometry under Add > Geometry
Now you plug the Group Input into the Distribute Points on Faces, that output into Instance on Points > Points where you also plug the Ico Sphere into the Instance socket. The Random Value node set to Vector gets plugged into the Scale input. Now the Instances output gets plugged into the Join Geometry node as well as the Group Input and then connect the joined mesh to the Group Output.
And this is how it looks like, the values you might adjust to your liking. In the Ico Sphere node you can set the base radius of the gravel objects, the Random Value node's Min and Max values are the scaling range for varying the size of the gravel.

As mentioned above in the list of nodes, you can also use a different object than the Ico Sphere, for example a Cube (or even a collection of custom gravel objects, but for simplicity we use primitives). The advantage is it has less vertices and maybe you want less "rounded" gravel. To place the cubes more randomly you can add random values for the Rotation on the Instance on Points node as well:

In the file there are two planes: one with the Geometry Nodes version, the other with the Displacement modifier (the latter is hidden).
